私はファイルをアップロードし、api経由でファイルとして送信しようとしています。しかし、動作しません。ここで私のアップロードに使用され、私のファイルをAPIに送信します。 しかし、ほとんどの場合、エラーメッセージが表示されます。javascriptでファイルをアップロードし、api経由でファイルを送信
$(document).on('change', '#txtUploadFile', function(e){
var files = e.target.files;
if (files.length > 0) {
if (this.value.lastIndexOf('.xlsx') === -1){
alert('Only ods files are allowed!');
this.value = '';
return;
}
if (window.FormData !== undefined) {
var data = new FormData();
for (var x = 0; x < files.length; x++){
data.append("file" + x, files[x]);
}
$.ajax({
type: "POST",
contentType: "multipart/form-data",
url: 'http://localhost/clicportaltest/rest/clicadmin/uploadExcel',
data:{file:file},
success: function(result) {
console.log(result);
},
error: function (xhr, status, p3, p4){
var err = "Error " + " " + status + " " + p3 + " " + p4;
if (xhr.responseText && xhr.responseText[0] == "{")
err = JSON.parse(xhr.responseText).Message;
console.log(err);
}
});
} else {
alert("This browser doesn't support HTML5 file uploads!");
}
}
});
エラーメッセージは何ですか? – Sventies
ファイルをJSONとしてどのようにエンコードすると思いますか?または、むしろ、サーバーはファイルが存在すると予想しますか? – Quentin
あなたはJSONを送信していたと言いましたが、残りのコードは実行していないマルチパートフォームデータを送信しているとは言えません。コードはコンパイルされません(途中で変数名を複数にすることについてあなたの心が変わったように見えます)。あなたはコードを編集し続けますが、まだデータをポストしているHTTPエンドポイントがデータを期待しているフォーマットを教えていません。 – Quentin