<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>html5上传</title>
<style>
div{padding:20px;}
</style>
</head>
<body>
<input type="file" id="file" multiple />
<div id="details"></div>
<button onclick="showFile()">提交</button>
<div><progress id="Progress" value="0" max="100" /></div>
<script type="text/javascript">
function showFile () {
var files,item,len,i,filename,filesize,type,dstr;
var details = document.getElementById("details");
files = document.getElementById("file").files;
// console.log(files);
for(i=0, len=files.length; i<len; i++){
var s='';
var oSpan = document.createElement("span");
// console.log(oSpan)
oSpan.innerHTML = (i+1)+'.->'+files[i].name+'文件大小:' + files[i].size;
details.appendChild(oSpan);
getFile(files[i]);
}
}
//通过filereader接口获取文件
function getFile(file){
if(FileReader){
var start = 0,end = 0,length = 1000;
var fr = new FileReader();
// fr.readAsText(file,[encoding]);//默认是utf-8编码
// fr.readAsBinaryString(file); //二进制读取
var readBlob = function(file,start,end){
// alert(1)
if(file.webkitSlice){
var blob = file.webkitSlice(start, end);
}else if(file.mozSlice){
var blob = file.mozSlice(start, end);
}else{
var blob = file.slice(start, end);
}
fr.readAsDataURL(blob);
};
readBlob(file, start, end);
// 读取中断的时候触发
fr.onabort = function(){
};
// 出错时触发
fr.onerror = function(){
};
//读取成功时触发
fr.onload = function(e){
if(end == file.size) return;
console.log(file.name,start,end);
var head = end;
end = (start + length) > file.size ? (file.size) : (start + length);
start = head;
readBlob(file, start, end);
};
// 读取完成是触发,无论成功还是失败
fr.onloadend = function(){
};
// 开始读取的时候触发
fr.onloadstart = function(file,start,end){
};
// 读取过程中触发
fr.onprogress = function(e){
var pro = document.getElementById("Progress"),
percent = end/file.size;
console.log(e,percent)
// console.log(e)
// console.log(e.loaded);
};
}else{
alert("Your browser doesn't support FileReader");
}
}
</script>
</body>
</html>