我正在尝试将图像从本机反应上载到public / images /文件夹中的heroku Express应用。它向我显示成功消息,但是images文件夹中没有图像。 同时,当我在localhost上尝试此代码时,效果很好。.
router.post('/add', (req, res) => {
let imageFile = req.files.photo;
let fileName = Date.now();
let imgName = fileName+req.files.photo.name;
let dirName = __dirname.replace('routes','public')
dirName = dirName+'/images/';
let path = dirName+imgName;
imageFile.mv(path, (err)=> {
if (err) {
return res.status(501).json({
message: 'error'
});
} else {
return res.status(200).json({
message: 'success'
})
}
});
})
答案 0 :(得分:1)
Heroku文件系统为ephemeral,您不能使用它在运行时持久存储任何内容。 相反,您可以使用Heroku Elements marketplace中的附件来实现您的存储需求。 对于您的特定用例,Cloudinary听起来很合适。他们的免费计划为您提供10 GB的存储空间。 您可以按照here的说明,通过node.js代码轻松地将图像上传到cloudinary。