フォームデータとファイルをRESTエンドポイントにアップロードしようとしています。私は、次のコードを書かれている -ファイル+データを送信するFormData
$(document).ready(function() {
var data = new FormData();
//upload file append to formdata
$("#catItemData #uploadC").on('change', function(){
$this = $(this);
var file = $this[0].files[0];
data.append("xlsx",file);
//input fields append to formdata
$("#catItemData #catSubmit").click(function(){
var formD = {
name: $("#name").val(),
type: $("#type").val()
};
for (var key in formD) {
data.append(key, formD[key]);
}
$.ajax({
type: "POST",
url: "http://localhost:8086/service/create",
data: data,
contentType: false,
cache: false,
processData: false,
success: function(response, status, xhr) {
//response
}
});
});
});
これは、しかし、任意のファイルのコンテンツをアップロードしてくれ415のサポートされていないメディアタイプのエラーを与えていません。これは、ペイロードの様子です。 -
------ WebKitFormBoundaryANhANgazbC1YNo1u 内容 - 配置:フォームデータ。名前= "xlsx";ファイル名= "testfile.xlsx" のContent-Type:アプリケーション/ vnd.openxmlformats-officedocument.spreadsheetml.sheet
------ WebKitFormBoundaryANhANgazbC1YNo1u コンテンツディスポジション:フォームデータ;名前= "名前"
ハロー
------ WebKitFormBoundaryANhANgazbC1YNo1u コンテンツディスポジション:フォームデータ;私はおそらくここで何を名= "タイプ"
PLATFORM
を逃していますか?どんな助けも高く評価されます。
RESTエンドポイントは、そのファイル形式を認識しません。 – Barmar
なぜ[Jqueryフォーム](http://malsup.com/jquery/form/)を使用しないのですか? –
コマンドプロンプトを使用してバックエンドをテストしたところ、すばやくファイルをアップロードしました。ファイルのコンテンツタイプを変更する必要がありますか?バックエンドは、マルチパート/フォームデータおよびアプリケーション/オクテットストリームのコンテンツタイプを処理するために用意されています。 – rnaikzz