0
我在使用multer将照片保存到文件夹时遇到问题。文件的路径将被上传到mlab(工作正常),但它应该从我想从它抓取它的文件夹中抓取图像,这只是不保存。当试图从视图中查看它时,由于图片不存在于文件夹中,它会引发404错误。这里是我的服务器端控制器:你如何让multer将文件保存在一个文件夹中?
var multer = require('multer');
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './modules/articles/client/img/'); // where to store it
},
filename: function (req, file, cb) {
if(!file.originalname.match(/\.(png|jpg|jpeg|pdf|gif)$/)) {
var err = new Error();
err.code = 'filetype'; // to check on file type
return cb(err);
} else {
var day = new Date();
var d = day.getDay();
var h = day.getHours();
var fileNamee = d + '_' + h + '_' + file.originalname;
console.log("filename produced is: " + fileNamee);
cb(null, fileNamee);
}
}
});
var upload = multer({
storage: storage,
limits: { fileSize: 20971520 } // Max file size: 20MB
}).single('myfile'); // name in form
exports.uploads = function (req, res) {
upload(req, res, function (err) {
if (err) {
if (err.code === 'LIMIT_FILE_SIZE') {
res.json({ success: false, message: 'File size is too large. Max limit is 20MB' });
} else if (err.code === 'filetype') {
res.json({ success: false, message: 'File type is invalid. Accepted types are .png/.jpg/.jpeg/.pdf' });
} else {
console.log('err = ' + err);
res.json({ success: false, message: 'File was not able to be uploaded' });
}
} else {
if (!req.file) {
var article = new Article(req.body);
article.user = req.user;
article.save(function (err) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.jsonp(article);
}
});
}
else if (req.file) {
res.json({ success: true, message: 'File was uploaded!' });
}
}
// Everything went fine
});
};
对不起,我有点新来处理meanJS和客户端 - 服务器工作,但img文件夹有chmod 755,而服务器端控制器有chmod 644(-rw-r - r--)。我会说,如果我在exports.upload函数和文件名函数中间引入print语句,则不会打印出任何内容。它是否需要做一些事情而不被称为? – Andrei