我正在构建一个前端工具,允许用户将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>
到目前为止,我已经查看了堆栈溢出并且没有任何解决方案有所帮助:(编写节点内容的同事离开了,所以我独自一人在这个