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)