Multer 是用于处理 multipart/form-data
的 node.js 中间件,主要用于上传文件。 它基于 busboy 之上编写,以实现最高效率。本文将简单介绍怎样使用 multer 上传文件。Multer 会添加一个 body
对象以及 file
或 files
对象到 Express 的 request
对象中。body
对象包含表单的文本域信息,file
或 files
对象包含对象表单上传的文件信息。
安装
npm install multer
API
var express = require('express')
var multer = require('multer')
var upload = multer({ dest: 'uploads' })
var app = express()
app.post('/profile', upload.single('avatar'), function (req, res, next) {
...
})
文件信息
每个文件具有下面的信息:
属性 | 描述 | 备注 |
---|---|---|
fieldname | Field name 由表单指定 | |
originalname | 用户计算机上的文件的名称 | |
size | 文件大小(字节单位) | |
destination | 保存在 destination 中的文件名 | DiskStorage |
filename | 文件大小(字节单位) | DiskStorage |
path | 已上传文件的完整路径 | DiskStorage |
multer(opts)
Multer 接受一个 options
对象,其中最基本的是 dest
属性,这将告诉 Multer 将上传文件保存在哪。如果你省略 options
对象,这些文件将保存在内存中,永远不会写入磁盘。
以下是可以传递给 Multer 的选项。
选项 | 描述 |
---|---|
dest/storage | 在哪里存储文件 |
fileFilter | 文件过滤器,控制哪些文件可以被接受 |
limits | 限制上传的数据 |
preservePath | 保存包含文件名的完整文件路径 |
参考实例
访问 codesandbox 查看完整实例代码及最终效果。
注意
Multer 不会处理任何非 multipart/form-data
类型的表单数据。
评论 (0)