Nodejs - 使用 multer 捕获文件大小错误
Nodejs - Catch filesize error with multer
我使用此代码 "multer" 将文件上传到我的服务器。即使我有限制文件大小,它也只是忽略它并上传文件。
const multer = require("multer");
const path = require("path");
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, "uploads/");
},
limits: {
fileSize: 1024 * 1024
}
});
const upload = multer(
{
storage: storage
}
).single("file");
router.post("/files/postfile", function (req: any, res: any, next) {
upload(req, res, function (err) {
if (err) {
return res.json({error: err});
}
return res.json({success: true});
});
});
const upload = multer({
storage: storage,
limits: {
fileSize: 1024 * 1024
}
}).single("file");
从 multer.diskStorage
中删除 limits
你的代码效率很低。
const multer = require("multer");
const path = require("path");
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, "uploads/");
}
});
const upload = multer({
storage: storage,
limits: {
fileSize: 1024 * 1024
}
});
router.post("/files/postfile", upload.single("file"); function (req: any, res: any, next) {
// . . . . code . . . .
});
通过使用中间件,您可以编写高效的代码
我推荐这种方法。
如果在 multer.diskStorage() 调用时使用文件名属性,则可以更改文件名。
destination: function (req, file, cb) {
cb(null, "uploads/");
},
filename: function(req, file, cb){
cb(null, 'unique_name.jpg'); # example: timestamp, utc, etc
},
limits: {
fileSize: 1024 * 1024
}
文件名可以重复。
我使用此代码 "multer" 将文件上传到我的服务器。即使我有限制文件大小,它也只是忽略它并上传文件。
const multer = require("multer");
const path = require("path");
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, "uploads/");
},
limits: {
fileSize: 1024 * 1024
}
});
const upload = multer(
{
storage: storage
}
).single("file");
router.post("/files/postfile", function (req: any, res: any, next) {
upload(req, res, function (err) {
if (err) {
return res.json({error: err});
}
return res.json({success: true});
});
});
const upload = multer({
storage: storage,
limits: {
fileSize: 1024 * 1024
}
}).single("file");
从 multer.diskStorage
limits
你的代码效率很低。
const multer = require("multer");
const path = require("path");
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, "uploads/");
}
});
const upload = multer({
storage: storage,
limits: {
fileSize: 1024 * 1024
}
});
router.post("/files/postfile", upload.single("file"); function (req: any, res: any, next) {
// . . . . code . . . .
});
通过使用中间件,您可以编写高效的代码 我推荐这种方法。 如果在 multer.diskStorage() 调用时使用文件名属性,则可以更改文件名。
destination: function (req, file, cb) {
cb(null, "uploads/");
},
filename: function(req, file, cb){
cb(null, 'unique_name.jpg'); # example: timestamp, utc, etc
},
limits: {
fileSize: 1024 * 1024
}
文件名可以重复。