AJAXファイルのアップロードについてQ & Aを読みましたが、どれも私のために働いていません。私はChrome 59とSafari 10を使用しています。AJAXファイルのアップロードは本当に可能ですか?
このAJAX呼び出しで何が間違っていますか?
$(function() {
$('#filesubmit').submit(function(e) {
e.preventDefault();
let file = $('#inputfile').prop('files')[0];
let formData = new FormData();
formData.append('file', file);
$.ajax({
type: 'POST',
url: 'getArchFromNet/',
data: formData,
processData: false,
contentType: false,
cache: false,
success: function(response) {
alert('ok');
}
});
});
});
たぶん、問題は少し厄介である、私のHTMLであるが、私はそうは思わない...とにかく、ここにある:具体的に
<form action="POST" id="filesubmit" style="display:none;">
<p>
<input id="inputfile" name="inputfile" type="file" onchange="$('#filesubmit').submit();" />
<input type="submit" name="sendfile" value="sendfile" />
</p>
</form>
<p id="net_actions">
<a id="load_net" href="javascript:$('#inputfile').click();"><img src="{% static 'upload.png' %}" alt="upload a network" /></a>
<a id="save_net" href="saveNet/?job_id=" type="application/octet-stream"><img src="{% static 'download.png' %}" alt="download the network" /></a>
</p>
、私の中で何が起こりますかHTMLはこれです:ユーザが#load_net
アンカーをクリックすると、ブラウザは#inputfile
ファイル入力をクリックします。ユーザーがファイルを選択すると、ブラウザは#sendfile
サブミット入力をクリックし、JS関数がトリガーされます。
問題は、ファイルの代わりに空のペイロードが送信されていることです。私もlet file = $('#inputfile').files[0];
とlet file = $('#inputfile').get(0).files[0];
を使用しようとしましたが、どれも動作しません。
新しいobjではなくformDataを使用できますか? –
はい、毎日昼食前に10回もできます!エラーは何ですか? – philipp
@Jonasw申し訳ありませんが、私は今投稿を編集します。しかし、実際には私の 'formData'変数でも空のペイロードが得られます。 – Giorgio