目录
前言
文件上传的时候,我们会采用multipart/form-data的请求体格式,而express.urlencoded()中间件并不能去解析此格式的数据,因此我们需要去找一个可以解析multipart/form-data格式的包,这里推荐使用multer,npm地址:multer - npm
下载
npm install --save multer
使用
单文件上传:
为了更方便的解读代码,这里没有采用模块化的方式
const express = require('express');
const router = express.Router();
const multer = require('multer')
const path = require('path')
const upload = multer({dest: path.join(__dirname, '../../uploads')}) // 要存放文件的路径
router.post('/api/upload/file', upload.single('image'), (req, res) => {
console.log(req.body)
console.log(req.file)
res.send('success')
})
module.exports = router
使用postman进行请求测试
打印结果:
如此,就拿到了上传文件的信息,以及我们传递的额外参数
多文件上传
//注意看取值变量
router.post('/api/upload/files', upload.array('image'), (req, res) => {
console.log(req.body)
console.log(req.files)
res.send('success')
})
postman请求测试
控制台打印:
结果
我们可以在项目中看到uploads目录,里面就是我们上传的文件,根据你自己的项目来看uploads在哪