我正在开发一个项目,我正在使用后端sails js,MongoDB作为数据库和前端React js。 我的上传图片有问题 这是代码Sails后端,当我在PostMan中测试它时,我得到了这个结果(result test PostMan),并且图像没有存储在指定的文件夹中,但是在MongoDB中插入了包含id和文件名的值,
cols = df.columns[df.columns.str.contains('^d.*')]
df[cols] /=2
这是Reactjs前端代码
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()
});
}
});
},
Sails版本0.12, 反应版本15.5, 和MongoDB版本3.4.9。
感谢您的帮助
答案 0 :(得分:0)
dirname
适配器没有skipper-gridfs
参数,因为该文件不会存储到本地文件系统中。
Skipper会将文件存储到MongoDB数据库中。
答案 1 :(得分:0)
您需要将其作为表单数据发送
let formData = new FormData()
console.log(values);
await formData.append('profile_picture',values.profile_picture.rawFile,values.profile_picture)
await fetch('http://localhost:1337/api/moderators',{
body:formData,
method:'POST',
credentials:'include' //If Using Session for react-app instead of JWT token
})