gpt4 book ai didi

javascript - MEAN 应用程序 : Can't receive image on back end, 上传失败

转载 作者:行者123 更新时间:2023-12-03 02:14:05 24 4
gpt4 key购买 nike

所以我正在尝试将图像上传到我的node.js 服务器。在我的组件中,我选择了要上传的图像,将其发送到我的服务,然后发送到服务器。我做了一些console.logs来检查我是否收到了该文件。

我不确定我是否需要 req.body 还是 req.files,所以我都做了。 req.body 返回一个空对象,req.files 返回未定义。有谁知道我做错了什么?我认为这与请求选项有关。

我要上传的文件是png文件。

这就是控制台的样子(下面是来自 userService 文件的 console.logs 的结果

enter image description here

用户服务文件:这里我用上面控制台中的结果制作了一些console.logs。我想我需要在这里使用特殊选项来提出请求,但我不知道是哪些。

postFile(fileToUpload: File, userId) {
console.log(fileToUpload);
const formData: FormData = new FormData();
formData.append('fileKey', fileToUpload, fileToUpload.name);
console.log(formData);
return this.http.post("http://localhost:3200/user/uploadProfilePicture/" + userId, formData, )
.map(() => { return true; })
.catch((e) => this.handleError(e));
}

node.js 后端:只是一些 console.logs 来检查文件是否到达后端,但事实并非如此

router.post('/uploadProfilePicture/:userId', function(req, res){
console.log('entered');
console.log(req.body);
console.log(req.files);

res.status(200).json({
msg: "sup mognol"
})
});

后端console.logs结果

输入,{},未定义

最佳答案

由于您将文件作为 formData 发送,因此需要使用 Node 中间件来处理多部分表单数据。

BusboyMulter都是不错的选择

您可以像这样使用 multer:

var multer  = require('multer')
var upload = multer({ dest: 'uploads/' })

app.post('/profile', upload.single('avatar'), function (req, res, next) {
// req.file is the `avatar` file
// req.body will hold the text fields, if there were any
})

关于javascript - MEAN 应用程序 : Can't receive image on back end, 上传失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49433982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com