位置: 编程技术 - 正文

jQuery用FormData实现文件上传的方法

编辑:rootadmin

推荐整理分享jQuery用FormData实现文件上传的方法,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

我们引入jQuery来进行异步上传可以获得更好的用户体验。 一方面,在JavaScript中进行异步操作比表单更加灵活; 另一方面,异步上传也避免了上传大文件时的页面长时间卡死。

HTML

一个type=file的<input>就可以让用户来浏览并选择文件, 一般会把输入控件放到一个<form>中,下面的一个简单的表单:

但为什么我只能选择一个文件??给<input>添加一个multiple属性就可以多选了!

获取文件列表

上述的<input>将会拥有一个叫files的DOM属性,包含了所选的文件列表(Array)。

这个Array中的每一项都是一个File对象,它有下面几个主要属性:

name: 文件名,只读字符串,不包含任何路径信息.

size: 文件大小,单位为字节,只读的位整数.

type: MIME类型,只读字符串,如果类型未知,则返回空字符串.

详情可以参考: 这时需要采用multipart/form-data编码的HTTP表单。

其HTTP消息体格式如下所示:

jQuery用FormData实现文件上传的方法

每个字段由一段boundary string来分隔,浏览器保证该boundary string不与内容重复, 因而multipart/form-data能够成功编码二进制数据。

jQuery上传文件

这是XMLHttpRequest Level 2提供的FormData对象可以帮助我们进行二进制文件的 multipart/form-data编码:

url, type, data想必做前端的都很熟悉了,介绍其余三个参数:

cache

cache设为false可以禁止浏览器对该URL(以及对应的HTTP方法)的缓存。 jQuery通过为URL添加一个冗余参数来实现。

该方法只对GET和HEAD起作用,然而IE8会缓存之前的GET结果来响应POST请求。 这里设置cache: false是为了兼容IE8。

参考: 因此传给data参数的对象会默认被转换为query string(见HTTP 表单编码 enctype)。

我们不需要jQuery做这个转换,否则会破坏掉multipart/form-data的编码格式。 因此设置contentType: false来禁止jQuery的转换操作。

processData

jQuery会将data对象转换为字符串来发送HTTP请求,默认情况下会用 application/x-www-form-urlencoded编码来进行转换。 我们设置contentType: false后该转换会失败,因此设置processData: false来禁止该转换过程。

我们给的data就是已经用FormData编码好的数据,不需要jQuery进行字符串转换。

兼容性与其他选择

本文介绍的jQuery文件上传方式依赖于FormData对象, 这是XMLHttpRequest Level 2接口, 需要 IE +, Firefox 4.0+, Chrome 7+, Safari 5+, Opera +

这意味着对于低版本浏览器只能使用直接提交文件表单的形式, 但提交大文件表单页面会长时间不响应,如果希望在低版本浏览器中解决该问题, 就只能使用别的方式来实现了,比如很多支持多文件和上传进度的Flash插件。

总结

标签: jQuery用FormData实现文件上传的方法

本文链接地址:https://www.jiuchutong.com/biancheng/377829.html 转载请保留说明!

上一篇:jQuery简单自定义图片轮播插件及用法示例(jquery自定义组件)

下一篇:jQuery事件绑定方法学习总结(推荐)(jquery绑定事件和移除事件)

  • 怎么计提坏账准备到本年利润
  • 企业所得税汇算清缴补缴税款分录
  • 租房代收水电费税率
  • 转让费和押金的区别
  • 个体户做了定额还需要申报个税吗
  • 装载机折旧年限是几年
  • 所有者投入的资本属于什么科目
  • 清算期间,公司是否可以经营
  • 月末计提账务处理
  • 哪些科目需要计提资产减值损失
  • 拨款和支出的区别
  • 未分配利润转出
  • 红字通知单进项税额转出
  • 合伙企业需要缴纳什么税
  • 计提递延所得税的会计分录
  • 建筑企业差额征收
  • 增值税进项发票网上勾选平台
  • 没有座机怎么填固定电话
  • 个人所得税退税截止日期2023
  • 房地产净利润率计算公式
  • 客户少付货款怎么做账
  • 企业采购成本包括所有的仓储费用
  • 车船使用税进哪个会计科目
  • 小规模纳税人无票收入免税吗
  • 房屋租赁收入确认条件新准则
  • 可转债 承销
  • 电商新公司值得去吗
  • 失业稳岗补贴要交社保吗
  • 支付本月职工薪酬
  • 马齿笕对什么病最有效?
  • 支付公司保洁费未开发票
  • php验证码扭曲效果怎么做
  • 如何用php制作网页
  • php文件用什么运行
  • 冲销暂估入账应该填什么凭证
  • opencv语句
  • 激活接口的命令
  • 发票写的是信息怎么办
  • 营业外收支核算的内容有哪些?
  • 开红字信息表后的账务处理
  • vue3.0用法
  • 预付账款后收到货物会计分录
  • 大华摄像头海康威视录像机
  • 通过SQLServer 2008 操作 MySQL的方法
  • 什么时候贷主营业务成本
  • 小规模纳税人企业所得税怎么算
  • 一次性扣除固定资产出售处理
  • 应付账款的主要舞弊形式
  • 普票和专票的区别对比
  • 坏账准备是什么凭证
  • 研发废料收入会计科目
  • 取得的政府补助收入计入
  • 为员工购买意外保险
  • 文化事业建设费税收优惠政策2022
  • 小规模纳税人销售使用过的固定资产
  • 公司帐户到银行怎么取钱
  • 会计上有哪些
  • 仲裁期间公司发工资了怎么办
  • 怎么做好出纳帐
  • sqlserver索引的作用
  • oracle教程入门
  • linux的ntp服务
  • win10屏幕亮度怎么调节快捷键
  • windows10设置无法使用
  • linux安装软件怎么安装
  • centos dvd安装
  • linux系统文件压缩命令
  • linux无法运行yum
  • win10系统运行速度慢
  • mac隐藏菜单栏
  • ubuntu清空文件内容
  • Win10双显卡怎么切换到独立显卡
  • win10提示空闲计时器已过期
  • win7系统电脑开不了机怎么办
  • cocos creator js ts
  • shell包含文件
  • color 对于当前会话,更改命令提示窗口的前景和背景色
  • jquery双击
  • jQuery Checkbox 全选 反选的简单实例
  • 配置ip地址的方法有哪几种
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设