zoukankan      html  css  js  c++  java
  • html5 filereader读取流注意事项

    对于截取读入的文件,一定要new FileReader,不可写全局调用同一个reader.


    错误代码!!!
    function
    readAsBinaryString(file,callback){ readrSpt(); var part= 0,fileName=file.name, step=1024*10,start= 0, a=0,b= 0,total=file.size,loaded= 0,reader=new FileRead(),fileType=file.type;///这样写是错的,将导致reader流不在是同步读取 //$("#fileLink").attr("href",URL.createObjectURL(blob)); //将文件以arraybuffer形式读入 (function(start){ var blob=file.slice(start,start+step+1),self=arguments.callee;// console.log(blob) reader.readAsArrayBuffer(blob); reader.onprogress=function(e){ loaded+=e.loaded; var per=loaded/total; if(loaded==total){ per=100; callback(this.result,part,fileName,fileType,true); }else{ per*=100; callback(this.result,part); part++; } } reader.onload=function(e){ console.log(loaded) if(loaded<total){ self(loaded); // callback(this.result); }else{ loaded=total; } } })(start); }


    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    正确代码
    function
    readAsBinaryString(file,callback){ readrSpt(); var part= 0,fileName=file.name, step=1024*10,start= 0, a=0,b= 0,total=file.size,loaded= 0,fileType=file.type; //$("#fileLink").attr("href",URL.createObjectURL(blob)); //将文件以arraybuffer形式读入 (function(start){ var blob=file.slice(start,start+step+1),reader = new FileReader(),self=arguments.callee; // console.log(blob) reader.readAsArrayBuffer(blob); reader.onprogress=function(e){ loaded+=e.loaded; var per=loaded/total; if(loaded==total){ per=100; callback(this.result,part,fileName,fileType,true); }else{ per*=100; callback(this.result,part); part++; } } reader.onload=function(e){ console.log(loaded) if(loaded<total){ self(loaded); // callback(this.result); }else{ loaded=total; } } })(start); }
    
    
    
    
    
  • 相关阅读:
    F
    E
    网上见到一同行发的隐私政策 备以后用
    Cannot connect to the Docker daemon. Is the docker daemon running on this host?
    mark
    转 随机数问题
    随机不同的数
    转 基于Quick-cocos2dx 2.2.3 的动态更新实现完整篇。(打包,服务器接口,模块自更新
    字符串
    关于cmbiling.jar cocos2dx的问题
  • 原文地址:https://www.cnblogs.com/tom-chang/p/4060650.html
Copyright © 2011-2022 走看看