我写了一个函数“导入文件”,它必须将多个文件发送到服务器。服务器只有一个文件。

输入:

<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。

07-27 13:32