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);
}
});