2012-09-17 233 views
2

我有一個Web服務,接受真正的大文件。通常在10 - 15 GB(不是MB)的範圍內。 但是,只能在Linux上使用Chrome上傳使用瀏覽器。所有3種主流瀏覽器都有不同的缺陷試圖上傳這樣的文件:巨大的文件上傳

  • Internet Explorer在正好4GB後停止。
  • Firefox根本無法啓動。
  • Chrome(在Windows上)傳輸整個文件,但未能發送關閉綁定(請發送0xff代替)。

現在我們正在尋找一種上傳方式來工作。最好只使用HTML/JS,但我認爲沒有辦法做到這一點。第二次嘗試將是閃存,但FileReference似乎打破文件> 4GB。最後一種方法是Java,但這不是我們在瀏覽器客戶端中尋找的。

請注意,這是關於客戶端。我知道服務器端代碼的工作原理,因爲我可以在Linux上使用標準HTML上傳和Chrome上傳12GB文件。它是迄今爲止唯一的瀏覽器/操作系統組合,但是我相信,服務器代碼很好。

有誰知道任何方式來獲得巨大的文件上傳工作?

問候, 斯特芬

+0

這可能有助於:「使用html5上傳大塊文件」http://stackoverflow.com/questions/7853467/uploading-a-file-in-chunks-using-html5 – ansiart

+1

一次上傳4gb並不好,臨時塊會保存到RAM內存中,所以想象一下,如果10位用戶同時上傳4GB文件大小。強烈建議使用塊! –

+0

我不確定,你的意思是大塊。我知道大塊編碼,這是失控的JavaScript代碼。我也讀過了第一條評論中鏈接的答案 - 但那隻會在Chrome中起作用......是否有第三個解釋大塊? –

回答

1

有一個相當年輕的JS/HTML5 API,它可能包括你的用戶案例:

https://developer.mozilla.org/en-US/docs/Using_files_from_web_applications

我不能給其適用性,雖然發言。

+0

現在使用html5的File API解決了這個問題。但是,這將IE排除在版本9之外(甚至包括)。如果有什麼方法可以讓IE9上傳這些上傳文件,我很樂意聽到。 –

-1

如果您使用IIS,默認最大上傳文件爲4GB。您需要在腳本或服務器設置中更改此設置。

請參見:Increasing Max Upload File Size on IIS7/Win7 Pro

+0

默認iis不是4GB,但允許的最大值是4GB。 –

+0

這不是關於服務器端 - 它工作正常,因爲我可以在linux下從chrome上傳12GB文件。這是關於瀏覽器端的... –

-1

通常你會打破和使用流上傳中塊上傳這些文件。如果您獲取文件的數量有限,請將該部分上傳到服務器,服務器會將數據附加到文件中。重複直到完成文件上傳。您可以使用FileStream更新:僅限Adobe AIR)或使用實驗Blob/FileReader的JavaScript讀取部分文件。我想這可能是解決問題的方法。

我覺得這個解決方案可以幫助: AS3 fileStream appears to read the file into memory

讓我知道,如果這個工程了,它的一個有趣的問題。

+1

不幸的是,FileStream僅限於AIR。 – ansiart

+0

ansiart ist right。我無法使用FileStream。 –