javascript - 如何在nodejs中接收上传的文件
问题描述
我有一个 redux-from 提交,控制台日志看起来像这样
{
id: "x",
parentId: "b",
editing: true,
logo: FileList,
}
Logo FileList包含我上传的文件名和文件,我想
0: File(19355) {name: "11964821.jpeg", lastModified: ......
使用fetch发送到 nodejs,图像包含我的文件和以上数据
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) {
})
包含表单数据
const onSubmit = (image, dispatch)=>{
var formData = new FormData();
formData.append('logo',image.logo[0]);
var imageNew = {...image,formData};
dispatch(imageActions.companyProfileLogoUpdate(imageNew)) ;
}
现在日志是
formData: FormData {}
id: "5c66478b0814720a4365fe72"
logo: FileList {0: File(19355), length: 1}
parentId: "5c66478b0814720a4365fe71"
解决方案
let formData = new FormData();
formData.append('logo' , {{your image file}}
// upload file as
let result = await sendServerRequestForForm(url,formData);
function sendServerRequestForForm(url,data) {
var promise = new Promise(function(resolve) {
resolve($.ajax({
url,
method : 'POST',
data,
processData: false,
contentType: false,
success: function(data) {
return data
},
error: function (err) {
try{
let responseStatus = err.responseJSON
// watch your response
}catch (e) {
console.log('Field to get response');
}
}
}));
});
return promise
}
推荐阅读
- typescript - 打字稿变量?和?
- r - 如何将标签添加到显示数量(而不是比例)的比例条形图中?
- java - 如何使用 Java 和 Twilio 向多人发送语音呼叫
- strapi - Strapi,使用 find 检查对象类型字段是否在其中一个属性中匹配
- python - 将图像添加到 Tkinter GUI 的第二个窗口
- java - 转到下一页后在 textView 中显示数据
- javascript - 为什么文件加载器很重要?
- bash - ׁׁׁׁ如何将值从 bash 文件返回到 jenkinsfile?
- python - 我如何对新字典 python 进行排序
- database - 数据库架构 - 结构数据