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); }

    转载来源:http://www.cnblogs.com/tom-chang/p/4060650.html
  • 相关阅读:
    ELK日志分析系统
    amoeba_mysql 读写分离
    while for if ---语句和编写计划任务
    Shell awk文本处理,shell脚本编写
    shell---正则表达式和文本处理器
    linux---网络相关配置,ssh服务,bash命令及优先级,元字符
    linux---nginx服务nfs服务nginx反向代理三台web
    linux---进程,(rpm,yum)软件包
    linux---tar命令,vim编辑器,磁盘分区,挂载,链接
    linux命令权限
  • 原文地址:https://www.cnblogs.com/sunshq/p/4062034.html
Copyright © 2011-2022 走看看