簡體   English   中英

jQuery文件上傳導致瀏覽器崩潰

[英]jQuery File Upload crashing browser

我正在使用jquery-filedrop和python / flask將文件上傳到服務器上的uploads文件夾。

但是,每當我選擇一個大文件(〜80MB +)時,瀏覽器選項卡(chrome)就會立即崩潰。

從自述文件中查看代碼 ,似乎使用HTML5 FileReader()處理文件上傳。

如果我通過更改這些行來占用文件的一小部分:

reader.onloadend = !opts.beforeSend ? send : function (e) {
      opts.beforeSend(files[fileIndex], fileIndex, function () { send(e); });
};

reader.readAsDataURL(files[fileIndex]);

reader.onloadend = !opts.beforeSend ? send : function (e) {
      opts.beforeSend(files[fileIndex].slice(0, 1048576), fileIndex, function () { send(e); });
};

reader.readAsDataURL(files[fileIndex].slice(0, 1048576));

然后,我可以通過從每個文件僅上傳1MB來使其運行而不會出現錯誤,因此我猜測讀取完整文件時這是內存問題。

如何設置它以遍歷文件的小塊並分別上傳? 還是有更好的解決方法?

是的,如果循環中有重物,Chrome瀏覽器會崩潰。 您可以做的最好的事情是使用Webworkers處理文件,然后讀取卡盤。

資源

如果使用HTML5 FileReader(),則file選項具有您可以使用的slice方法。

var blob = file.slice(startingByte, endindByte); reader.readAsBinaryString(blob);

有關更多信息: http : //www.html5rocks.com/zh-CN/tutorials/file/dndfiles/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM