h5如何上传文件二进制流_h5上传文件的方法

本文介绍了H5如何通过异步方式上传文件,利用`input[type=file]`标签,结合XMLHttpRequest的xhr.upload.onprogress事件实现文件上传进度监控。详细讲解了FileReader对象的使用和FormData构造表单数据结构,最后展示了如何通过ajax发送multipart/form-data格式的数据到服务器。
摘要由CSDN通过智能技术生成

h5上传文件的方法:

H5标签提供了原生的 input[type=file] 标签支持文件上传功能。类似于表单提交,文件上传有两种,同步和异步,同步无法获得上传工程中的进度,异步是采用ajax方式上传,实时获得上传进度等信息。

异步上传文件,文件编码格式采用 multipart/form-data (https://segmentfault.com/a/1190000008791342#articleHeader3),原生对象 XMLHttpRequest 提供了 xhr.upload.onprogress 事件,xhr.upload.onprogress在上传阶段(即xhr.send()之后,xhr.readystate=2之前)触发,每50ms触发一次;xhr.onprogress在下载阶段(即xhr.readystate=3时)触发,每50ms触发一次。(https://segmentfault.com/a/1190000004322487)。(http://www.ruanyifeng.com/blog/2012/08/file_upload.html)

异步上传文件中其实还包含了一个文件读取的过程。异步上传文件的过程,首先是读取文件,返回一个文件对象,这时可以对文件对象进行读取操作。读取前需要新建一个fileReader对象, new FileReader();fileReader事件处理有6种:

onabort:文件读取终端,触发。

onerror:文件遇到错误触发。

onload:文件成功读取触发。

onloadstart:文件开始读取时触发。

onloadend:文件读取结束时触发(无论成功失败)。

onprogress:文件读取中触发。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值