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); }
    
    
    
    
    
  • 相关阅读:
    SQL常用语句(不定期更新)包含 日期格式,取列
    前端开发 ---浏览器自动刷新
    记录Redis使用中遇到的两个问题(原子性及数据完整性)
    Linux 输出重定向
    逆向手机内核,添加调试支持及绕过反调试
    阿里2014移动安全挑战赛第二题调试笔记
    在redhat6.4上编译z3求解器
    WCF学习笔记一(概述)
    DataReader反射泛型对象
    自定义配置节点(一)
  • 原文地址:https://www.cnblogs.com/tom-chang/p/4060650.html
Copyright © 2011-2022 走看看