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});

参考

官方文档