我要投稿
投诉建议
首页
Web前端
后端技术
数据应用
编程语言
其他语言
技术落地
科技领域
SEO
科技迭代
当前位置:
首页
>
后端技术
>
Node.js
express的中间件multer接收文件类型数据的使用
时间:2023-04-03 17:41:01
Node.js
前言
标签的enctype属性设置提交表单数据的编码方式。可选值有3个:application/x-www-form-urlencodedmultipart/form-datatext/plain第一种:这是默认的编码方式。它只处理表单域中的value属性值,使用这种编码方式的表单会将表单域的值处理成一个URL。第二种:这种编码方式会将表单数据以二进制流的形式进行处理。这种编码方式会将file字段指定的文件内容封装到请求参数中。第三种方法:当表单的action属性值为mailto:URL形式时,这种方法比较方便。这种方式主要适用于直接通过表单发送邮件。前端
标签用于提交文件。需要注意的是,这个标签的值并不是选中文件的内容,而是文件的全路径名。前面提到,提交表单时,如果使用默认编码,则不会提交文件内容。因此在表单中提交文件内容时必须使用multipart/form-data编码方式,这就需要在服务器端从提交的二进制流中读取文件内容。后端中间件的使用一般分为两种:使用app.use的形式作为路由中的参数和使用express中间件multer接收上传的文件,multer中间件作为路由中的参数的。multer只会解析设置为enctype="multipart/form-data"的表单。multer可以自定义存储引擎multer会将上传的信息和内容挂载到request对象中具体使用步骤:首先导入multer中间件constmulter=require('multer');第二次调用multerconstupload=multer({dest:'uploads/'});//不是这样multer(options)接受一个options对象,最基本的就是dest属性,这个会告诉multer把上传的文件保存到哪里。如果省略选项对象,文件将保存在内存中,永远不会写入磁盘。dest的意思是选择一个路径来存放文件,但是这样写有一个小问题,保存的文件没有后缀。所以我们使用如下配置项我们一般使用一个配置项:conststorage=multer.diskStorage({//用于配置文件上传目的地的位置:(req,file,cb)=>{//调用cb即可实现上传位置的配置cb(null,'./public/uploads')},//用于配置上传文件的名称(包括后缀)filename:(req,file,cb)=>{//filename用于判断文件夹中的文件名,如果不设置filename,则每个文件都会设置为一个随机的不带扩展名的文件名。//获取文件后缀letext=path.extname(file.originalname)//拼凑文件名cb(null,file.fieldname+'-'+Date.now()+ext)}})constupload=multer({storage:storage})router.post('/uploader',upload.single('pic'),(req,res)=>{//upload.single('pic')意思是告诉multer只接收一个名为pic的文件//响应成功的文件给浏览器res上传信息.json(req.file)})重要提示:这里必须注意一个路径问题。如果在app.js中引入admin路由,在destination中设置路径时,是相对于app.js设置的。Tips获取文件扩展名的方式(都是原生的)path.parse()path.extname()path.extname('index.html')//return:'.html'path.extname('index.coffee.md')//returns:'.md'path.parse('/home/user/dir/file.txt')//returns//{//root:'/',//dir:'/home/user/dir',//base:'file.txt',//ext:'.txt',//name:'file'//}
上一篇:
Express4.17版核心源码分析
下一篇:
用NodeJS打造多人在线聊天室(NodeJS & SocketIO & Express & EJS ...)
express的中间件multer接收文件类型数据的使用相关文章
比尔盖茨!没想到你可以用智能手表来管理你的牛群
奥克斯实行“使用60天不满意包退”的四大理由
解析可穿戴设备大数据突破硬件限制的三大关键因素
暑假惊喜不仅是录取通知书,还有天房带来的贴心实惠的智能锁!
红领队是索尼OLED电视A1的粉丝,你呢?
可穿戴设备的天花板很低,取代手机是伪命题
韩国学者推出可完全替代智能手机的概念智能眼镜
从本次MWC上海看国民VR时代的六大武器
风暴之镜4评测!这款让我们又爱又恨的产品
颠覆传统的智能三星Gear S2外观详细解读
Android P强力优化蓝牙耳机!自动记住多个设备的音量
难得一见的清华深度学习课程!我们“偷”了全套干货
神奇的智能裤,穿上它就告别轮椅!
苹果的祝福! JDI将全力进击智能手表市场
三星曝20个新漏洞!黑客可以控制你家的摄像头和门锁
了解一下BOSE新款耳塞,内置10种不同的自然白噪音帮助睡眠
马斯克承认特斯拉自研芯片其实是被逼的!
智能硬件可能会侵犯人类隐私,目前的政策基本上是白费力气
VR体验中心火爆,从密室逃脱到VR的“转变”你了解多少
智能手表Ticwatch!两会记者最喜欢的高科技设备
最新推荐
1
魅族MX4搭配的inWatch π智能手表详解
2
这才是真正的黑科技!最强国筹Bet365下周五正式发布!
3
速冷、舒适、节能堪称“全能”,美的极爽空调特价促销
4
日薪5000元的苏宁空调安装体验官有何经历?
5
黑科技!专业运动员的智能手环刷新了可穿戴设备的未来
6
石墨烯可以将普通纸张变成用于柔性显示器和可穿戴设备的新材料
7
小米手环3体验!也许它可以取代你的智能手表
8
有人想众筹开发一款监测屁的健康可穿戴设备
9
苹果新款Apple Watch开箱!您对它的外观满意吗?
10
可穿戴挑战赛的20万美元大奖就是这款手环
猜你喜欢
1
独家的!逃跑时老板的公章被抢走了!这个明星机器人深陷破产困境
2
VR“断断续续”的流行还存在这些问题
3
这种可以骑乘并自动跟随人的移动机器人在海外收获了无数粉丝
4
董明珠对美的的犀利点评!根本不是对手,算是长辈
5
诺基亚用时尚诠释智能手表的未来
6
智能手环的准确性受到质疑,厂商盲目跟风,忽视软实力
7
可穿戴设备!你有自己的信息
8
LV高管!瑞士奢侈手表行业将受益于智能手表的繁荣
9
致力于可穿戴设备的续航能力,下一代电池会取代锂电池吗?
10
雷军透露,小米手环2的图片已于5月10日发布
11
iPhone XS上市不温不火的背后,国产高性价比手机备受追
12
手机照片盲评:哪张照片最适合你的选择?
13
全面评测399元华为荣耀手环零!你不知道的偏执
14
被小猪佩奇祝福的社会人都out了,据说这群新社会人比较受欢迎
15
除了小龙虾,世界杯还有这些值得关注的技术
16
谷歌的硬件一直广受好评,但并不受欢迎,推出两款智能手表的底气
17
什么能让你摆脱“随机无蛋”的可穿戴产品?
18
林林的爆料!可穿戴设备的实用性还不够
19
微软HoloLens眼镜!打破虚拟与现实的界限
20
高通推出Snapdragon Wear 2500,增加在可穿