使用reactjs中的“fetch”上传文件
我正在尝试使用ReactJS上传文件。
handleUploadfile = (event) => {
event.preventDefault();
const data = new FormData();
data.append('photo',event.target.files[0] );
data.append('name', 'Test Name');
data.append('desc', 'Test description');
fetch("http://localhost:3001/todo/upload", {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/x-www-form-urlencoded'
},
body: data
}).then((response) => {
return response.text();
})
}
出于某种原因,我无法使用以下命令读取nodejs(+ multer)服务器上的文件:
req.files
在后路由器上显示“undefined”。
答案 0 :(得分:4)
最后我找到了解决方案
我不得不删除'内容类型'来自header部分,它使用multer在nodejs中解决。
使用" multipart / form-data"
'Content-Type': 'multipart/form-data'
要求我们设置边界,因此它会在nodejs上抛出错误"错误:多部分:未找到边界"
使用" application / x-www-form-urlencoded"
'Content-Type': 'application/x-www-form-urlencoded'
我将req.body填充但是作为字符串但无法访问各个值。
因此,最终解决方案是删除' Content-Type'