Tôi đang thực hiện một hệ thống tập tin tải lên đơn giản với multer:Làm cách nào để giới hạn kích thước tệp khi tải lên bằng multer?
var maxSize = 1 * 1000 * 1000;
var storage = multer.diskStorage({
destination: function (req, file, callback) {
callback(null, 'public/upload');
},
filename: function (req, file, callback) {
callback(null, file.originalname);
},
onFileUploadStart: function(file, req, res){
if(req.files.file.length > maxSize) {
return false;
}
}
});
var upload = multer({ storage : storage}).single('bestand');
router.post('/upload',function(req,res){
upload(req,res,function(err) {
if(err) {
return res.end("Error uploading file.");
}
console.log(req.file);
res.redirect(req.baseUrl);
});
});
này tất cả hoạt động tốt và các tập tin được tải lên. Điều duy nhất không hoạt động là giới hạn về kích thước tối đa. Tôi đã làm cho nó để onfileupload bắt đầu kích thước của tập tin được kiểm tra và nếu nó lớn nó sẽ trả về false. Nhưng tệp vẫn chỉ được tải lên.
Dường như onFileUploadStart
không làm gì cả. Tôi đã cố gắng để console.log
một cái gì đó trong đó, nhưng không có gì.
Tôi đang làm gì sai? Làm cách nào để giới hạn kích thước tệp khi tải lên bằng multer?
ở đâu bạn thấy rằng bạn cần phải trả lại 'false' nếu' req.files.file.length> MAXSIZE 'trong bộ xử lý của' onFileUploadStart' ngay cả? – nbro
Hướng dẫn tôi đang theo dõi. Nhưng tôi giả sử u nói đây không phải là cách đúng để dừng việc tải lên? –
Bạn có thể 'console.log' (trước câu lệnh if) tệp trong cùng một trình xử lý đó không? Bạn thấy gì? – nbro