Express文件上传中间件Multer使用详解
5 浏览量
更新于2024-08-30
收藏 66KB PDF 举报
Express 文件上传中间件 Multer 详解
Multer 是 Express 官方推出的中间件,用于处理 Node.js multipart/form-data 请求数据。它基于 busboy 构建,可以高效地处理文件上传,但并不处理 multipart/form-data 之外的用户请求。
Multer 安装非常简单,只需要使用 npm install multer --save 命令即可。
Multer 的使用也非常灵活。它可以将文件上传到服务器的指定目录下,并提供了多种上传方式,例如单文件上传、多文件上传、字段上传等。
在使用 Multer 时,需要创建一个 Multer 实例,并指定文件上传的目标目录。例如:
```javascript
var express = require('express');
var multer = require('multer');
var upload = multer({ dest: 'uploads/' });
```
然后,在路由处理函数中,可以使用 upload.single() 或 upload.array() 方法来处理文件上传。
例如,使用 upload.single() 方法来上传单个文件:
```javascript
app.post('/profile', upload.single('avatar'), function(req, res, next) {
// req.file 是 `avatar` 文件
// req.body 对象中是表单中提交的文本字段(如果有)
});
```
使用 upload.array() 方法来上传多个文件:
```javascript
app.post('/photos/upload', upload.array('photos', 12), function(req, res, next) {
// req.files 是 `photos` 文件数组
// req.body 对象中是表单中提交的文本字段(如果有)
});
```
也可以使用 upload.fields() 方法来上传多个文件,并指定每个文件的最大数量:
```javascript
var cpUpload = upload.fields([{ name: 'avatar', maxCount: 1 }, { name: 'gallery', maxCount: 8 }]);
app.post('/cool-profile', cpUpload, function(req, res, next) {
// req.files 是一个对象(String->Array)
// req.body 对象中是表单中提交的文本字段(如果有)
});
```
Multer 是一个功能强大且灵活的文件上传中间件,可以满足各种文件上传需求。
Multer 的优点包括:
* 高效的文件上传处理
*灵活的上传方式(单文件、多文件、字段上传等)
* 支持大文件上传
* 支持多个文件同时上传
* 支持自定义上传目录和文件名
因此,在 Express 项目中使用 Multer 可以使文件上传变得更加方便和高效。
2020-10-21 上传
2021-01-20 上传
2020-10-17 上传
2020-10-16 上传
点击了解资源详情
2023-05-13 上传
2020-10-16 上传
2021-03-30 上传
2021-03-20 上传
weixin_38628183
- 粉丝: 6
- 资源: 889