0
嘿,有人有这个问题。我正尝试使用MULTER(邮递员发送邮件)上传图片。较小的文件〜50Kb只显示为空文本/纯文件,较大的〜2.1Mb图像被上传,但其大小不同(从原始2087736字节到2023146),我无法打开PNG - >(错误不是PNG文件)并在JPEG格式 - >(不是一个JPEF文件:以0x8d 0x35开头)。无法打开多个上传的文件
在multer一边,我使用一些过滤,并且有一定的限制:
var photoUpload = multer({ storage: phtStorage, fileFilter: photoFilter, limits: limits }).single('file');
但他们没有什么两样
过滤器:
var photoFilter = function(req, file, cb) {
if (settings.acceptedPhotoTypes.indexOf(file.mimetype) !== -1)
cb(null, true);
else
cb('Invalid file type', false);
};
存储:
var phtStorage = multer.diskStorage({
destination: function (req, file, cb) {
var path = settings.photoProcessingSrcDir;
mkdirp(path, err => cb(err, path));
cb(null, path);
},
filename : function (req, file, cb) {
cb(null, req.fileName.toString());
}
});
个限制:
var limits = { fileSize: 20000000 };
我做的唯一的异国情调的事情是我通过功能photoUpload
到另一个函数,因为我想在实际上传之前做一些数据库验证。
router.post('/:catalogId/:storeId', protected, function(req, res, next) {
if (f.type === 'photo') {
require('../helpers/files/post-photo')(photoUpload, req, res, next);
}
});