express 上传文件中间件 Multer 的使用方法

2017年06月06日

Multer 用于处理multipart/form-data 类型的表单数据,主要用于上传文件。

安装

npm install multer --save

使用

前端页面代码如下:

1<form action="" method="POST" enctype="multipart/form-data">
2  Select an image to upload:<br />
3  <input type="file" name="image" /><br />
4  <input type="submit" value="Upload Image" />
5</form>

以下代码为最简单使用方法,即上传文件,然后将文件保存在文件夹中。不过此时的文件名是随机生成且无扩展名。

 1var express = require('express');
 2var multer = require('multer');
 3
 4var app = express();
 5// 上传的文件夹
 6var upload = multer({ dest: 'uploads/' });
 7
 8app.post('/upload', upload.single('image'), function (req, res, next) {
 9  // req.file 是 `avatar` 文件的信息
10  // req.body 将具有文本域数据, 如果存在的话
11  res.send('success');
12});

如需自定义保存的文件名称,可配置如下:

 1var storage = multer.diskStorage({
 2  destination: function (req, file, cb) {
 3    cb(null, path.join(__dirname, '../public/images/'));
 4  },
 5  filename: function (req, file, cb) {
 6    // console.log(file);
 7    cb(null, file.originalname);
 8  },
 9});
10var upload = multer({ storage: storage });

参考

官方文档