html 5+Ajax超大型ファイルアップロード(ファイルカット技術)
1984 ワード
ここでアップロードします:ファイルの大きさは制限がなくて、進捗バーを持って、進捗度はブラウザのレンダリング原理に連絡して、これも先生のステップによって来て、先生の指導がなければ私もできません
アップロードは主にファイルを小さく切ってそれぞれアップロードします.phpでこれらのファイルを統合します
アップロードは主にファイルを小さく切ってそれぞれアップロードします.phpでこれらのファイルを統合します
Insert title here
function createXHR(){
var xhr;
if(window.XMLHttpRequest){
xhr=new XMLHttpRequest();
}else if(window.ActiveXObject){
xhr=new ActiveXObject("Microsoft.XMLHTTP");
}
return xhr;
}
var xhr=createXHR();
function uploadFile(fd){
xhr.open("POST",'sliceFile.php',false);
xhr.send(fd);
}
var clock=null;
var sendFile=(function (){
const LENGTH=10*1024*1024;//
var start=0;// 0
var end =start+LENGTH;//
var sending=false;//
return (function (){
if(sending==true){
return;
}
var file=document.getElementsByTagName('input')[0].files[0];//
var totalsize=file.size;//
if(start>totalsize){
clearInterval(clock);
return;
}
var fd=new FormData();
var blob=file.slice(start,end);
fd.append('blob',blob);
uploadFile(fd);
start=end;
end=start+LENGTH;
sending=false;
var percent=100*end/totalsize;
if(percent>100){
percent=100;
}
document.getElementById('progress').style.width=percent+'%';
document.getElementById('progress').innerHTML=parseInt(percent)+'%';
});
})();
function start(){
clock=window.setInterval(sendFile,1000);
}
php ,