【服务端知识点】(十五天)文件上传实现——30天node+mongo+react+redux+express搭建完美资源后台管理系统+前端(全栈工程师 结合antd)

这篇博客介绍了在Node.js+Express环境下,使用multer、multiparty和formidable模块实现文件上传的常见方法。详细阐述了multipart/form-data的用途,以及各模块的主要功能和配置选项,包括文件保存路径、错误处理和进度反馈等关键点。
摘要由CSDN通过智能技术生成

这个系列文章是自己在开发过程中,自己感悟学习以及借鉴各方大师大神经验分享,非常尊重每个人的劳动成果,目的就是与大家共同分享学习,共同进步!
后台资源管理,增删改查操作必不可少,其中增加资源又是一切的根本,增加的资源的方式有很多种,
1.上传文件 2.复制链接 3.库存导入 4.其他

那今天要和大家要和大家分享的就是最主动地,最基础的方式,自主上传内容这种形式。今天要介绍的方法有三种,留个悬念,开始吧。

一、node+express实现文件上传的常用方式

常用的实现上传的方式有:
1.express中间件multer模块(此效率最高,在express3.x原生支持,到了express4.x独立成一个模块了)
2.connect-multiparty模块(但现在 官方不推荐 )
3.使用multiparty模块实现(此方法比较普遍)
4.使用formidable插件实现(插件呢,就是简单易懂);

二、了解multipart/form-data

首先知道enctype这个属性管理的是表单的MIME编码。共有三个值可选:
1.application/x-www-form-urlencoded
2.multipart/form-data
3.text/plain

1.application/x-www-form-urlencoded是默认值,作用是设置表单传输的编码。
例如我们在AJAX中见过 xmlHttp.setRequestHeader("Content-Type","application/x-www-form- urlencoded");如果不写会报错的,但是在html的form表单里是可以不写enctype=application/x-www- form-urlencoded,因为默认的HTML表单就是这种传输编码类型的。

2.multipart/form-data是用来制定传输数据的特殊类型的,主要就是我们上传的非文本的内容,比如图片或是是mp3等等。
3.text/plain是纯文本传输的意思
在发邮件的时候要设置这种编码类型,否则会出现接收时编码混乱的问题。网络上经常拿text /plain和 text/html做比较,其实这两个很好区分,前者用来传输纯文本文件,后者则是传递html代码的编码类型,在发送头文件时才用得上。①和③都不能用于上传文件,只有multipart/form-data才能完整的传递文件数据。

当我们采用enctype='multipart/form-data' 会以request payload提交数据,如图

三、multer模块上传问题

github地址: https://github.com/expressjs/multer https://www.npmjs.com/package/multer

Multer是node的一个中间件,通过multipart/form-data类型提交,如果在顶部写入busboy模块(可以快速解

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值