我的问题需要一些帮助。我想从FileList中删除一些文件,然后通过Ajax使用新的FormData发送它们。为此,我只想使用Javascript。
用户选择文件后,content_evaluate()函数会对它们进行评估,并将要发送的文件分配给新的数组transfer_files []。这些文件将添加到新的formdata中,然后发送。 但是,即使仅将修改后的数组赋予新的formdata,也会发送源输入中的所有文件。例如必须发送5个文件中的3个。
<form id="formular" onsubmit="send_data();" method="post"
enctype="multipart/form-data">
<table id="dyninfo" align="center" border="1">
<tr>
<td>
<input id="upload_filename_id" name="upload_filename" type="file"
onchange="content_evaluate();" size="60" multiple>
</td>
<td>
<button type="submit" id="upload" style="width:120px">Upload</button>
</td>
</tr>
</table>
</form>
脚本:
var transfer_files = [];
function send_data()
{
var formData = new FormData();
for (var i = 0; i < transfer_files.length; i++)
{
var file = transfer_files[i];
formData.set(transfer_files, file, file.name);
}
var xhr = new XMLHttpRequest();
xhr.open('POST', 'upload.html', true);
xhr.send(formData);
return false;
};
答案 0 :(得分:0)
您正在循环遍历0长度数组(transfer_files)
使用输入文件对象检索输入的文件,然后循环浏览
StatusCode: 404, ReasonPhrase: 'Not Found', Version: 1.1, Content:
System.Net.Http.NoWriteNoSeekStreamContent, Headers:
{
Cache-Control: no-store, must-revalidate, no-cache
Date: Wed, 11 Apr 2018 05:19:41 GMT
Server: Jetty(9.4.z-SNAPSHOT)
X-Content-Type-Options: nosniff
Content-Length: 429
Content-Type: text/html; charset=iso-8859-1
}