JS⽂件处理—⽂件上传(含分块、断点续传)
⼀、常规⽂件上传:
  ⽅案⼀:直接通过from表单
  ⽅案⼆:通过js上传⽂件:
    说明:H5中,选择上传的⽂件,必须通过 input[type="file"] 标签实现。js中是⽆法获取 input[type="file"] 选中⽂件的路径和数据,但是允许FormData 对象获取到 input[file] 内的数据流。
       formData对象中和⽂件相关的信息,js是⽆法打印出来的。
    关键点:使⽤new FormData() 创建⼀个form类型的数据,接受input控件中的⽂件数据流。
var inputDOM = this.$refs.file  // 获取input[type="file"] 对象
var file = inputDOM.files[0]
var formData = new FormData()
formData.append('uploadFile', file)  // 将input控件⾥⾯的数据流,塞到formData对象⾥
javascript说明uploadFileToQiniu(formData)  // 调⽤ajax请求,注意这⾥的请求头Content-Type 必须是 multipart/form-data类型的
⼆、⼤⽂件分⽚上传:或
  原理说明:其实就是js把⼤⽂件,分割成多个⼩⽂件。在把这些⼩⽂件,⼀个⼀个单独上传上去就可以了。
      前端⽣成的是分割的⽂件,后端就需要合并这些⼩⽂件。才能成为⼀个完整的⽂件。
var file = ElementById("file").files[0];
var chunk = file.slice(start,end);//切割⽂件
三、断点续传:
  原理说明:断点续传是基于分⽚上传的功能上,在已经上传的分⽚上,继续上传剩下的分⽚⽂件。
注意:新版浏览器已经可以实现不⽤ input[type="file"] 标签,直接通过JS的 window.showOpenFilePicker() ⽅法唤醒⽂件选择框了。
   参考

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。