使用Node / Express

时间:2017-03-01 20:07:05

标签: javascript node.js reactjs file-upload

我正在构建一个前端工具,允许用户将CSV文件上传到某个终点。我使用HTML5输入="文件"

这是我的JSX,我使用React Dropzone库:

<Dropzone
  multiple={false}
  onDrop={this.onDrop}
>
  <div>
    <input type="file" />
  </div>
</Dropzone>

onDrop功能:

onDrop(acceptedFile) {
  this.setState({ file: acceptedFile });
}

我抓住那个文件并把它放在我的状态上。我的提交功能如下所示:

submitFile() {
  const formData = new FormData();
  formData.append('uploadCsv', this.state.file);
  fetch('/api/person/uploadfile', {
    body: formData,
    method: 'POST'
  });
}

然后通过几个文件进行路由..

router.use('/person', require('./routers/personRoutes').default);
router.post('/uploadfile', fileUpload);

然后我运行我的fileUpload函数:

export const fileUpload = post({
  route: req => {
    return `${BASE_URL}/v1/fileupload/persons`;
  }
});

我不知道该怎么做。通常我只需返回一个URL,一切正常。 req.body只是一个空对象 - {}。我收到的错误消息说:

Current request is not a multipart request

BUT。这样简单的事情确实有效:

<html>
  <form action="http://localhost:9275/v1/fileupload/persons"
  enctype="multipart/form-data" method="post">
    <p>
     Please specify a file, or a set of files:<br>
    <input type="file" name="file" size="40">
    </p>
    <div>
      <input type="submit" value="Send">
    </div>
  </form>
</html>

到目前为止,我已经查看了堆栈溢出并且没有任何解决方案有所帮助:(编写节点内容的同事离开了,所以我独自一人在这个

0 个答案:

没有答案