node:express解析multipart/form-data数据;上传文件(单文件+多文件)

目录

前言

下载

使用

单文件上传:

多文件上传

结果


前言

文件上传的时候,我们会采用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在哪

猜你喜欢

转载自blog.csdn.net/qq_42543244/article/details/126627944