在html5中中file方法给数据的上传下载提供很大的便利,但<input type="file" id="myFile">
中通常需要读取文件内容
1.fileReader就是读取文件二进制流的
*获取需要上传对象*
var select=document.getElementById('myFile').files[0];//获取所要上传的对象
var reader=new FileReader();
reader.readAsArrayBuffer(select);//读取文件的blob内容存储在result中
读取文件的主要方法#
reader.readAsArrayBuffer();//读取的文件内容arraybuffer存储文件内容
reader.readAsDataURL();//读取出包含文件内容的url
reader.readAsText();读取文件字符串表示
*文件加载过程*
reader.onload=function(){
myResult=this.result;
var array=new Uint8Array(myResult);
var buf=new buf.buffer(1000);
var totalNum=Math.ceil(array.legth/1000);//文件分为1000份;
var bufT = new buf.Buffer(array.length);
for(var i=0;i<array.length;i++){
bufT[i]=array[i];
}
bufT.copy(buf,0,0,999);
*接下来就是二进制数据循环发送*
}
buffer主要是针对我上传的数据格式必须是二进制格式,而且需要分包发送,publish只能为buffer
2.第二种方法可以通过new FormData()的方法
let formData = new FormData()
this.portParams = '参数名'
this.file = document.getElementById('myFile').files[0]
formData.append(that.portParams, this.file)
formData就可以作为数据流传递给后台
网友评论