我如何在 multer 中实现 if(!= req.file)?
How do i implement a if(!= req.file) in multer?
嗨,我对我的 multer 代码 recently.But 做了一些修改,当我尝试在 upload.single('name')(req, res, function (error) {
in app.post 的 mutler 代码中包含一个 if(!req.file) 时为了确保至少有一个文件被上传,整个代码 failed.Can 有人帮我吗?谢谢!
我目前的js代码:
var multer = require('multer');
var storage = multer.diskStorage({
destination: function (req, file, callback) {
callback(null, './uploads');
},
filename: function (req, file, callback) {
callback(null, path.basename(file.originalname));
}
})
const upload = multer({
dest: storage,
storage: storage,
limits: {
fileSize: 1024 * 1024
},
fileFilter: function (req, file, callback, error) {
var ext = path.extname(file.originalname);
var error_msg = error instanceof multer.MulterError;
if (ext !== '.jpg') {
req.fileValidationError = "Not a jpg file!";
return callback(null, false, req.fileValidationError);
}
if (error_msg) {
return callback(null, false, new MulterError('LIMIT_FILE_SIZE'))
}
callback(null, true)
}
});
app.post("/upload", function (req, res, next) {
upload.single('name')(req, res, function (error) {
if (req.fileValidationError) {
res.status(500).send({ message: req.fileValidationError });
}
else {
if (error) {
res.status(500).send({ message: error.code === 'LIMIT_FILE_SIZE' ? "Image more than 1MB!" : error.message });
}
else {
console.log('File Received!');
console.log(req.file);
var sql = "INSERT INTO `upload`(name,encoding,destination,path,type,size) VALUES('" + req.file.filename + "', '" + req.file.encoding + "', '" + req.file.destination + "', '" + req.file.path + "', '" + req.file.mimetype + "', '" + req.file.size + "')";
db.query(sql, (error, results) => {
console.log('Inserted Data!');
});
const message = "Successfully Uploaded!"
res.status(200).send({ message: message, file_details: req.file })
}
}
})
}) ```
尝试使用
if(req && req.file) { ... }
当 req
和 req.file
都不是 null
或 undefined
. 时,req && req.file
输出真值
嗨,我对我的 multer 代码 recently.But 做了一些修改,当我尝试在 upload.single('name')(req, res, function (error) {
in app.post 的 mutler 代码中包含一个 if(!req.file) 时为了确保至少有一个文件被上传,整个代码 failed.Can 有人帮我吗?谢谢!
我目前的js代码:
var multer = require('multer');
var storage = multer.diskStorage({
destination: function (req, file, callback) {
callback(null, './uploads');
},
filename: function (req, file, callback) {
callback(null, path.basename(file.originalname));
}
})
const upload = multer({
dest: storage,
storage: storage,
limits: {
fileSize: 1024 * 1024
},
fileFilter: function (req, file, callback, error) {
var ext = path.extname(file.originalname);
var error_msg = error instanceof multer.MulterError;
if (ext !== '.jpg') {
req.fileValidationError = "Not a jpg file!";
return callback(null, false, req.fileValidationError);
}
if (error_msg) {
return callback(null, false, new MulterError('LIMIT_FILE_SIZE'))
}
callback(null, true)
}
});
app.post("/upload", function (req, res, next) {
upload.single('name')(req, res, function (error) {
if (req.fileValidationError) {
res.status(500).send({ message: req.fileValidationError });
}
else {
if (error) {
res.status(500).send({ message: error.code === 'LIMIT_FILE_SIZE' ? "Image more than 1MB!" : error.message });
}
else {
console.log('File Received!');
console.log(req.file);
var sql = "INSERT INTO `upload`(name,encoding,destination,path,type,size) VALUES('" + req.file.filename + "', '" + req.file.encoding + "', '" + req.file.destination + "', '" + req.file.path + "', '" + req.file.mimetype + "', '" + req.file.size + "')";
db.query(sql, (error, results) => {
console.log('Inserted Data!');
});
const message = "Successfully Uploaded!"
res.status(200).send({ message: message, file_details: req.file })
}
}
})
}) ```
尝试使用
if(req && req.file) { ... }
当 req
和 req.file
都不是 null
或 undefined
. 时,req && req.file
输出真值