var fd = new FormData();
fd.append("fileToUpload", document.getElementById('fileToUpload').files[0]);
var xhr = new XMLHttpRequest();
xhr.open("POST", "uph.php");
xhr.send(fd);

uph.php:
var_dump($_FILES['fileToUpload']);

这有效,但显然仅适用于files[0]。如何使此文件适用于所选文件?

我尝试删除[0],但是没有用。

最佳答案

您必须获取要添加到JS中的文件长度,然后通过AJAX请求将其发送,如下所示

//JavaScript
var ins = document.getElementById('fileToUpload').files.length;
for (var x = 0; x < ins; x++) {
    fd.append("fileToUpload[]", document.getElementById('fileToUpload').files[x]);
}

//PHP
$count = count($_FILES['fileToUpload']['name']);
for ($i = 0; $i < $count; $i++) {
    echo 'Name: '.$_FILES['fileToUpload']['name'][$i].'<br/>';
}

关于javascript - 使用formData()上传多个文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12989442/

10-11 07:52