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