formData上传多文件
时间: 2024-05-05 19:15:38 浏览: 15
要使用formData上传多个文件,可以按照以下步骤操作:
1. 创建一个formData对象,并将需要上传的数据添加到formData中。例如:
```
var formData = new FormData();
var files = document.getElementById('fileInput').files;
for (var i = 0; i < files.length; i++) {
formData.append('files[]', files[i]);
}
```
这里创建了一个formData对象,并将所有选择的文件添加到名为“files[]”的formData键中。可以根据需要更改键的名称。
2. 创建一个XMLHttpRequest对象并将formData对象作为参数发送到服务器。例如:
```
var xhr = new XMLHttpRequest();
xhr.open('POST', '/upload', true);
xhr.onload = function() {
if (xhr.status === 200) {
console.log(xhr.responseText);
} else {
console.log('Upload failed: ' + xhr.status);
}
};
xhr.send(formData);
```
这里创建了一个XMLHttpRequest对象,并使用POST方法将formData对象发送到服务器上的“/upload”路径。可以根据需要更改路径和方法。
3. 在服务器端接收formData数据并处理它们。这将因服务器端技术而有所不同,但以下是一个示例PHP代码,可以接收名为“files[]”的多个文件:
```
$files = $_FILES['files'];
foreach ($files['error'] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $files['tmp_name'][$key];
$name = $files['name'][$key];
move_uploaded_file($tmp_name, "uploads/$name");
}
}
```
这里使用PHP的$_FILES变量接收名为“files[]”的多个文件,并将它们保存到服务器上的“uploads/”目录中。可以根据需要更改目录名称。
这就是使用formData上传多个文件的基本步骤。可以根据需要进行更改和修改。