私はブラウザから直接ファイルをアップロードしようとしているopenstackオブジェクトストレージコンテナを持っています。JavaScriptからopenstackオブジェクトストレージにファイルをアップロードする
は、ドキュメントhereごととして、私はPUT
要求を使用してファイルをアップロードすることができますし、私は以下に示すように、この使用Angularjsが$http.put
方法を提供やっています。
$http.put(temporaryUploadUrl,
formData,
{
headers: {
'Content-Type': undefined
}
}
).then(function (res) {
console.log("Success");
});
ファイルが正常にアップロードし、それが認証で問題がないと私に201 Created
応答を与えます。しかし、ファイルには、マルチパート要求がFormData()
を使用して送信されたため、上端と下端に迷惑線が含まれています。アップロードする前に
サンプルファイルの内容:
Some sample text
here is more text
here is some other text
ファイル内容バックOpenStackのコンテナからdownloadiong後:
------WebKitFormBoundaryTEeQZVW5hNSWtIqS
Content-Disposition: form-data; name="file"; filename="c.txt"
Content-Type: text/plain
Some sample text
here is more text
here is some other text
------WebKitFormBoundaryTEeQZVW5hNSWtIqS--
私はバイナリ文字列として選択されたファイルを読むためにFileReader
を試してみましたFormData
の代わりにリクエスト本体に内容を書き込んだので、テキストファイルは正常に動作しますが、バイナリは正常に動作しませんyファイルXLSX
またはPDF
のようなデータは完全にこの方法で破損しています。
@georgeawgもう一度質問を再入力してください。私は間違いを編集しました –
なぜこれらのすべてのdownvotesがなぜ私に言っているコメントがあった...:| –
「迷惑行」は、Content-Type:multipart/formを送信する際の[境界](https://stackoverflow.com/questions/3508338/what-is-the-boundary-in-multipart-form-data)です。 - データ。 [ファイル](https://developer.mozilla.org/en-US/docs/Web/API/FileList)オブジェクトを直接送信する以外はすべて**試しました。 – georgeawg