js 文件的上传 分段读取文件 FileReader

读取文本  或二进制文件

html :

<button type="" class="btn btn-success" οnclick="fileToUpload.click()">上传</button>
										
<input type="file" id="fileToUpload" style="display:none" name="fileToUpload" οnchange="backUpload(this); "value="上传"/>

js :

function backUpload(input) {//上传
  	
	var fileSize = 0;//文件大小
	var count="";
	_start=0;
	if (window.FileReader) {//支持chrome IE10
	    _file1 = input.files[0];
	    var filename = _file1.name.split(".")[0];
	    _upFileSize=_file1.size;//文件字节数
	    URL=input.value;
	    order=0;
	    upda();
	} 
}

function upda(){
	reading();
}

var READBLOCKSIZE = 511 ;

function reading ()
{
	var reader = new FileReader();
	
	    var result;
	    result= _file1.slice(_start,(READBLOCKSIZE+_start));
	    reader.onload = function() {
      		var contents ="";
      		contents = this.result;
      		var cc=contents.length;
//  		alert(contents);
			//读取结束的字节位置 < 文件的总字节数 
			if ((READBLOCKSIZE+_start)<_upFileSize){//需要进行多次循环
				
    			send(order,contents);
    			
    			//下次循环
    			order=1;
    			_start=READBLOCKSIZE+_start;
    			upda();
			}
    		else {//最后一次循环
    			send(order,contents);
    			alert("上传成功!");
    		}
    		
    	}
    	reader.readAsBinaryString(result);
}

测试OK的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值