1. ホーム
  2. javascript

[解決済み] FormDataとしてアップロードされたBlobにファイル名を付けるには?

2023-05-02 11:05:24

質問

現在、以下のコードでクリップボードから貼り付けた画像をアップロードしています。

// Turns out getAsFile will return a blob, not a file
var blob = event.clipboardData.items[0].getAsFile(), 
    form = new FormData(),
    request = new XMLHttpRequest();
form.append("blob",blob);
request.open(
            "POST",
            "/upload",
            true
        );
request.send(form);

アップロードされたフォームのフィールドは、次のような名前を受け取ることがわかりました。Blob157fce71535b4f93ba92ac6053d81e3a

サーバー側の通信を行わずに、クライアント側でこのファイル名を設定または受信する方法はあるでしょうか?

どのように解決するのですか?

Chrome、Safari、Firefoxの場合、こちらをご利用ください。

form.append("blob", blob, filename);

(参照 MDNドキュメント )