我写了一个函数“导入文件”,它必须将多个文件发送到服务器。服务器只有一个文件。
输入:
<input
type="files"
id="files"
name="files"
multiple
onChange={ (e) => this.importFile(e.target.files) }
/>
功能:
importFile(file: File) {
const fd = new FormData();
let filesArr = [];
for (let key in file) {
if(file[key] instanceof File) {
filesArr.push(file[key]);
}
}
for (let i = 0; i < filesArr.length; i++) {
fd.append('file', filesArr[i]);
}
post('/file/attachment', fd)
.then((res) => {
this.props.importFile([res]);
})
.catch((e) => console.error(e));
}
最佳答案
您在服务器上只能选择formData
中的单个文件。
请尝试使用fd.append('file[]', filesArr[i])
。
在键名前面使用[]
时,可以按MDN docs中的说明附加多个值,请参见示例3。