bolb 、file、createObjectURL 使用笔记

909 阅读1分钟

bolb 、Int8Array、ArrayBuffer为h5在处理文件、视频、音频等二进制流数据新增底层数据转换处理类型。

bolb格式

在实际使用中生成类似数组的对象,只是承载的是文件流。

FileReader

说明制定FileReader继承流bolb格式,但是其this.result其实是文件流base64格式,是真实文件。

URL.createObjectURL 、revokeObjectURL

传入bolb或file,转成字符串,指向内存中bolb或file地址,浏览器关闭后自动释放。

使用fileReader读取文件并通过bolb格式展示demo,将一个文件或者图片分片展示

  let file = document.querySelector("#file");
       file.addEventListener("change",function(ev){
  let tar = ev.target.files[0];
  let files = new FileReader();
       files.readAsArrayBuffer(tar);
       files.onload=function(){
       let block =Math.ceil(this.result.byteLength/1024);  //切割x段
       let i = 0, th = this;
       let show = ()=>{
             setTimeout(a=>{
                    let bolb = new Blob([th.result.slice(0,i*1024+1024)]);//每次添加一个片段
                    let url = URL.createObjectURL(bolb); //创建bolb格式URL
                    let img =  document.querySelector("#img");
                        img.src = url;  //这里做的事没秒加载,可以改动为分片上传
                        if(i<block){ i+=1; show()}
                 },1000);
                                
                             }
                 show();
                            
          }//show end
                    
    },false)