【发布时间】:2021-08-21 11:54:45
【问题描述】:
我正在开发一个文件上传器,我希望我的用户能够同时上传多个文件,并且一个接一个地上传多个文件。我看到很多其他页面都有类似的问题,但没有一个能解决我的问题。
这是我的 html 上传表单:
<form id="myform" action="upload.php" method="post" enctype="multipart/form-data" >
<h3>Upload File</h3>
<input type="file" name="myfile[]" id="uploadFile" multiple>
<button type="submit" id="mySubmitButton" onclick="saveData()" name="save">UPLOAD</button>
</form>
我认为 FormData 是适合我的情况的正确方法,但我不确定。我想制作一个文件数组并通过 PHP 文件将它们发送到服务器。我真的不想用ajax。
这是我的 Javascript 代码:
<script>
function saveData(){
formData.getAll("myfile[]");
}
$('#uploadFile').on('change', function() {
var formData = new FormData();
var files = $('#uploadFile')[0].files;
for (var i = 0; i < files.length; i++) {
formData.append('myfile[]', document.getElementById('uploadFile').files[i]);
}
});
</script>
这行不通。现在我只上传最后选择的文件。希望您能帮助我,在此先感谢!
【问题讨论】:
-
当您说
"multiple files one by one"时,这意味着顺序(选择所有并上传 1,2,3...)还是单独(选择文件 -> 上传,选择另一个 -> 上传等)? -
我想按顺序上传文件,所以,选择文件->选择另一个->选择另一个->上传。现在,如果我按顺序选择文件,只会上传最后一个文件,因为它会覆盖当前选择。
-
好的 - 有道理,但
FormData使用没有 - 如果你不使用 Ajax,你将如何使用它? -
Ajax 的解决方案是什么样的?
标签: javascript php form-data