如何在nodejs中接收上传的文件
我有一个redux-from提交,控制台日志看起来像这样
{
id: "x",
parentId: "b",
editing: true,
logo: FileList,
}
我认为Logo FileList包含我上传的文件名和文件
0: File(19355) {name: "11964821.jpeg", lastModified: ......
使用fetch发送到nodejs,image包含我的文件和上面的数据
function Update(image) {
const requestOptions = {
method: 'POST',
headers: { ...authHeader(), 'Content-Type': 'application/x-www-form-urlencoded' },
body: JSON.stringify(image)
};
return fetch(`${apiUrl}/API`, requestOptions).then(handleResponse)
.then( data => { return data; });
}
但是这个数据没有接收到nodejs,因为尝试了re.file等。它显示未定义
app.post('/image', upload.single('logo'), function (req, res, next) {
})
include formdata
const onSubmit = (image, dispatch)=>{
var formData = new FormData();
formData.append('logo',image.logo[0]);
var imageNew = {...image,formData};
dispatch(imageActionspanyProfileLogoUpdate(imageNew)) ;
}
现在是日志
formData: FormData {}
id: "5c66478b0814720a4365fe72"
logo: FileList {0: File(19355), length: 1}
parentId: "5c66478b0814720a4365fe71"
回答如下:
将formData移动到获取文件并删除标题内容类型,试试这个
function Update(image) {
var formData = new FormData();
formData.append('logo',image.logo[0]);
const requestOptions = {
method: 'POST',
headers: { ...authHeader() },
body: formData
};
return fetch(`${apiUrl}/API`, requestOptions).then(handleResponse)
.then( data => { return data; });
}