【发布时间】:2018-01-15 07:19:57
【问题描述】:
我正在做一个项目,我正在使用后端 Sails js、MongoDB 作为数据库和前端 React js。
我在上传图片时遇到问题。
这是 Sails 后端的代码,当我在 PostMan 中对其进行测试时,我得到了这个结果(result test PostMan),并且图像没有存储在指定的文件夹中,而是在 MongoDB 中插入了一个包含 id 和文件名的值,
uploadFile: function (req, res) {
var image= req.file('avatar');
image.upload({
adapter: require('skipper-gridfs'),
uri: 'mongodb://localhost:27017/name_db.name_collection',
dirname: '../../assets/images/'
}, function (err, filesUploaded) {
if (err){
return res.header("Access-Control-Allow-Origin", "*");
/*res.negotiate(err);*/res.json(err);
}
else{
return
res.header("Access-Control-Allow-Origin", "*"); res.ok({
files: filesUploaded,
textParams: req.params.all()
});
}
});
},
这里是 Reactjs 前端代码
_handleSubmit(e) {
e.preventDefault();
// TODO: do something with -> this.state.file
fetch('http://localhost:1337/uploadPhoto/logos', {
method: 'POST',
body: JSON.stringify({avatar:this.state.file})
})
.then((response) => response.json())
.catch((err) => { console.log(err); });
}
Sails 0.12 版, 反应版本 15.5, 和 MongoDB 版本 3.4.9。
感谢您的帮助
【问题讨论】:
-
您是否在 react.js 代码中提供了所有必需的标头?如我所见,在邮递员中有一个标题。也许一些授权
-
我已经添加了一个标题但是它没有工作,(postMan中的标题:Content-Type:application / x-www-form-urlencoded)该值没有发送并且有没有返回错误