3
現在、マルチパート/フォームデータ形式でアップロードしているファイルを必要とする(変更できない)サーバーにArrayBufferをアップロードしようとしています。 。サーバは、Content-Disposition
部分から、保存されるfilename
を抽出し、Content-type
の下にファイルを提供するときに使用されるMIMEタイプを抽出する。現在、私はファイルをアップロードするには成功してる:XHRでFormDataとして渡されるBlobBuilderのファイル名を変更する
var xhr = new XMLHttpRequest();
var fdata = new FormData();
var bb;
if (WebKitBlobBuilder) {
bb = new WebKitBlobBuilder();
} else if (MozBlobBuilder) {
bb = new MozBlobBuilder();
} else if (BlobBuilder) {
bb = new BlobBuilder();
}
bb.append(obj.array);
fdata.append('file', bb.getBlob("application/octet-stream"));
xhr.open("POST", url, true);
xhr.send(fdata);
しかし、ブラウザは、たとえばChromeで、好きなようヘッダが送信されます。
Content-Disposition: form-data; name="file"; filename="blob"
Content-Type: application/octet-stream;
私は一時的に保存が企図しましたFileWriter APIを使用してファイルをアップロードしてアップロードしますが、それは正しくありません。
- サーバーを変更することはできません、また私は別のサーバープロバイダを選択して喜んだ:答える
、アカウントに取ります。
- FirefoxとChromeで少なくとも動作する必要があります(私のアプリは2つのブラウザに限定されています)。
Firefoxでうまく動作していないようですが、バグを報告しました。[link [(https://bugzilla.mozilla.org/show_bug.cgi?id=736324) – Chazz
私はすでに取り組んでいます:Bug 690659 https ://bugzilla.mozilla.org/show_bug.cgi?id = 690659(このパッチはすでに動作していますが、特定の処理方法にはいくつかの問題があります)。バグを複製しないでください。 – Chiguireitor