在multer中检查文件类型可以通过使用第三方库来实现。以下是一个示例的解决方案:
npm install --save multer multer-s3 aws-sdk
const multer = require('multer');
const multerS3 = require('multer-s3');
const AWS = require('aws-sdk');
AWS.config.update({
accessKeyId: 'YOUR_ACCESS_KEY',
secretAccessKey: 'YOUR_SECRET_ACCESS_KEY',
region: 'YOUR_REGION'
});
请将上述代码中的YOUR_ACCESS_KEY
、YOUR_SECRET_ACCESS_KEY
和YOUR_REGION
替换为你的实际访问密钥和区域。
const s3 = new AWS.S3();
const upload = multer({
storage: multerS3({
s3: s3,
bucket: 'YOUR_BUCKET_NAME',
acl: 'public-read', // 设置文件的访问权限
metadata: function (req, file, cb) {
cb(null, { fieldName: file.fieldname });
},
key: function (req, file, cb) {
cb(null, Date.now().toString()) // 设置文件名为当前时间戳
}
}),
fileFilter: function (req, file, cb) {
// 检查文件类型
if (file.mimetype !== 'image/jpeg' && file.mimetype !== 'image/png') {
return cb(new Error('Only JPEG and PNG files are allowed'));
}
cb(null, true);
}
});
请将上述代码中的YOUR_BUCKET_NAME
替换为你的实际存储桶名称。
app.post('/upload', upload.single('file'), function (req, res, next) {
// 文件上传成功后的处理逻辑
res.send('File uploaded successfully');
});
请将上述代码中的/upload
替换为你实际的上传路由。
以上代码中的fileFilter
函数用于检查文件类型。在示例中,只允许上传JPEG和PNG格式的文件。如果文件类型不符合要求,将会返回一个错误。
这是一个基本的multer文件上传配置,你可以根据自己的需求进行修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云