文件导入前端使用form-data,怎么把文件加入白名单,不做校验
时间: 2024-01-09 08:03:29 浏览: 62
如果你使用的是 Node.js 平台,可以使用 multer 中间件来解析 form-data 格式的请求,并且设置文件上传的白名单。
在 multer 中,可以使用 `fileFilter` 选项来指定一个函数,该函数会在每个文件上传之前被调用,用于判断文件是否合法。如果函数返回 `false`,则 multer 会拒绝上传该文件。
如果你想要把文件加入白名单,可以在 `fileFilter` 函数中判断文件的扩展名是否在白名单中,如果在,则返回 `true`,否则返回 `false`。
下面是一个示例代码:
```javascript
const multer = require('multer');
// 定义白名单
const allowedExtensions = ['.jpg', '.png', '.gif'];
// 定义 fileFilter 函数
const fileFilter = (req, file, cb) => {
const extension = '.' + file.originalname.split('.').pop();
if (allowedExtensions.includes(extension)) {
cb(null, true); // 允许上传
} else {
cb(null, false); // 拒绝上传
}
};
// 创建 multer 实例
const upload = multer({ fileFilter });
// 使用 multer 中间件处理上传请求
app.post('/upload', upload.single('file'), (req, res) => {
// 处理上传的文件
});
```
在上面的代码中,我们定义了一个白名单 `allowedExtensions`,并在 `fileFilter` 函数中判断文件的扩展名是否在白名单中。如果在,则调用 `cb(null, true)` 允许上传,否则调用 `cb(null, false)` 拒绝上传。最后,我们使用 `upload.single('file')` 中间件来处理上传请求,并在回调函数中处理上传的文件。
阅读全文