javascript - 为什么一个文件发送到服务器

标签 javascript reactjs typescript

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

输入:

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

关于javascript - 为什么一个文件发送到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57736994/

相关文章:

angular - 无法在 getRequiredModulePath 处读取 NodeObject.getText 处未定义的属性 'text'

javascript - ionic 避免 View 标题在 Android 上闪烁

javascript - 在 sublime 中制作箭头函数片段的快捷方式

javascript - 具有自调用函数的数组初始化

javascript - 如何在 react-router 的链接中引用状态

javascript - ReactJS教程代码移植ES6代码不起作用

node.js - Webpack 失败,babel 已移至 babel-core

javascript - Angular 中输入和跨度之间的文本绑定(bind)

javascript - 在react.js中通过点击增加数量

javascript - recorderJS 录制/下载音频缓冲区 WEB AUDIO API