路线-
app.post('/add-product',(req,res)=>{
var image=randomstring.generate({
length: 12
});
var form = new formidable.IncomingForm();
form.parse(req, function (err, fields, files) {
var oldpath = files.pimage.path;
var newpath = __dirname;
var path=newpath.split('controllers');
path=path[0]+'/public/productimages/'+image+".jpg";
fs.readFile(oldpath, function (err, data) {
if (err) throw err;
// Write the file
fs.writeFile(path, data, function (err) {
if (err) throw err;
});
});
});
});
在将图片上传到Heroku服务器时遇到了一些问题,在Localhost上一切正常。但是在Heroku中,当我上传图片时,我的应用在这些行上崩溃了。
fs.writeFile(path, data, function (err) {
if (err) throw err;
});
Heroku日志截图:
将'/ public .....'更改为'public / productimages /....'
我得到: 没有此类文件或目录,请打开“ /app/public/productimages/8sRueNlG2k3F.jpg”
答案 0 :(得分:0)
这些错误通常是由于目标目录(在您的情况下为/app/public/productimages/
)不存在引起的。
您可以在应用启动时使用类似mkdirp
的包来创建目录,也可以在本地创建目录并创建提交的空占位符文件(例如,名为.placeholder
)。到您的Git存储库中(因为Git仅处理文件,而不处理目录,因此您无法向存储库中添加完全空的目录)。