如題,本人小白一名,在學習實現一個資源共享系統,涉及到很多1GB以上的文件,查閱了很多資料,發現可以用ajax實現,步驟如下:
1.通過javascript獲取文件對象
2.利用slice將文件切割成小片
3.利用xmlhttprequest的send方法將片發送給處理程序
4.php處理程序將文件拼接
於是動手模擬了一下,可是總是沒有該有的效果,求大神指導,謝謝!
文件上傳端test.php代碼如下:
處理端代碼如下
什麼浏覽器?IE9-不支持HTML5的FormData對象,要用IE10+以上,chrome,firefox這種浏覽器才行
while(begin < size) {
var blob = upfile.slice(begin, end);
data.append('files', blob);
//建立連接
xhr.open('POST', '1.php', false);//這裡要改成同步,要不同時發送ajax請求無法控制請求的次序,你服務器端就不好串接數據
//發送數據
xhr.send(data);
document.getElementById('progress').value = (end / size) * 100;
begin = end;
end = begin + blob_size;
//document.write(xhr.responseText);//要去掉或者注釋掉這句,要不會導致文檔流被覆蓋
}