温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么用node+multer中间件实现单文件、多文件上传

发布时间:2022-03-19 15:39:08 来源:亿速云 阅读:162 作者:iii 栏目:web开发

本篇内容介绍了“怎么用node+multer中间件实现单文件、多文件上传”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、概念

Multer 是一个 node.js 中间件,用于处理 multipart/form-data 类型的表单数据,它主要用于上传文件。

注意: Multer 不会处理任何非 multipart/form-data 类型的表单数据。

二、安装

npm i multer --save

三、使用(页面底部有单文件、多文件上传案例)

Multer 会在express 的 request 对象里添加一个 body 对象 (包含表单的文本域信息)以及 file 或 files 对象 (单文件通过req.file获取,多文件通过req.files获取,file 或 files 对象包含对象表单上传的文件信息)。

四、基本使用

//1.引入依赖

const express = require('express')

const multer  = require('multer')

//存储在uploads文件夹下面,没有会直接创建

const upload = multer({ dest: 'uploads/' }) 

const app = express()

//相同的

//以下fielname(字符串)必须前端传过来的myformData对象的属性名一致,不然后端接收不到这个文件对象 // req.body 将具有文本域数据,如果存在的话

app.post('/profile', upload.single(fielname), function (req, res, next) {

  //multer实例.single(fielname)——单文件上传,文件对象获取通过req.file

  //multer实例.single(fieldame)——接受一个以fielname命名的文件,这个文件的信息保存在req.file中的fielname属性

  // req.body 将具有文本域数据,如果存在的话

})

app.post('/photos/upload', upload.array(fielname, 12), function (req, res, next) {

  //multer实例.array(fielname[,maxCount])——接收一个以fielname命名的文件数组;maxCount——限制上传的最大数量,这些文件的信息保存在req.files里面

})

const cpUpload = upload.fields([{ name:fields[, maxCount: 1 ]}, { name: 'gallery', maxCount: 8 }])

//multer实例.files(fields)——接受指定fields的混合文件,获取——req.files

//fields应该是一个对象数组,应该具有name和可选的maxCount属性

 app.post('/profile', upload.none(), function (req, res, next) {

  //multer实例.none()——只接受文本域

})

“怎么用node+multer中间件实现单文件、多文件上传”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI