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:文件读取中触发。