2008-08-29 258 views
12

Internet Explorer的文件下載限制爲4GB(IE6上爲2 GB)。 Firefox不會有這個問題(沒有測試Safari瀏覽器還) (此處瞭解詳情:http://support.microsoft.com/kb/298618大文件下載

我在現場工作,將允許用戶下載非常大的文件(達到和超過100GB)

什麼是最好的辦法做到這一點不使用FTP。最終用戶必須能夠使用HTTP從那裏瀏覽器下載文件。我不認爲Flash或Silverlight可以將文件保存到客戶端,據我所知他們不會削減它。

我猜我們需要一個ActiveX或Java小程序來解決這個問題。就像MSDN使用的下載管理器一樣。

有沒有人知道會做到這一點的商業(或免費)組件?我們不希望用戶必須安裝「瀏覽器範圍」下載管理器(如GetRight),我們希望它只能在我們的網站上下載。

更新:這裏是一些額外的信息,以幫助澄清我正在嘗試做什麼。大部分高於4GB限制的文件將是大型高清視頻文件(其用於視頻編輯公司)。這些將由用戶通過互聯網下載,這不會成爲本地網絡中的人員。我們希望這些文件通過HTTP可用(有些用戶將在防火牆之後,不允許FTP,Bittorrent等)。這將是最終用戶可以下載的文件庫,因此我們不是在討論一次大的下載。將會在半定期的基礎上下載不同的大文件。

到目前爲止,@ Edmund-Tay建議的Vault是迄今爲止最接近的解決方案。唯一的問題是,它不適用於大於4GB的文件(它在開始下載之前立即失敗,它們可能使用32位整數在文件內容長度超過的地方)。

一個java applet(或者ActiveX組件,因爲問題只存在於IE中)像鏈接到的文章@spoulson一樣是最好的解決方案,但到目前爲止我還沒有找到一個能夠做類似(多部分下載,簡歷等)。我們可能不得不寫我們自己的。另一種選擇是編寫與擴展或MIME類型關聯的.Net應用程序(可能是ClickOnce)。然後,用戶實際上會從在EXE/ClickOnce應用程序中打開的Web服務器下載一個小文件,該文件告訴應用程序要下載的文件。這就是MSDN下載器的工作原理。最終用戶只需要下載/安裝一次EXE。每次他們想下載一個大文件時,這比下載一個exe文件要好。

+0

只是想知道你來幹什麼了針對此 – travis 2009-07-17 17:39:28

+0

的解決方案:「我不認爲Flash或Silverlight可以將文件保存到客戶端,據我所知他們不會削減它。「看看WeTransfer(https://www.wetransfer.com/) - 我不知道它是如何工作的,但似乎通過Flash客戶端下載大文件。 – 2012-05-28 06:16:29

回答

4

請不要使用ActiveX ...我很生病的網站,只能在IE瀏覽器。

作爲用戶,我在這些情況下的實際偏好是下載一個輕量級的.exe文件,爲您下載文件。

0

@travis

不幸的是它必須是在HTTP用戶的瀏覽器內。 我會更新這個問題,以便更清楚地瞭解這一點。

2

你可以將文件分割成幾部分,然後在下載後重新加入它們?

0

@levand 只能在IE中存在(它工作在Firefox),從而在的ActiveX只能在IE瀏覽器的問題,IE是需要我們周圍的工作只有一個。

@travis - 有趣的想法。不知道它是否能滿足我需要的功能,但我會牢記它。我希望能夠找到與現有網站相結合的內容,而不必去第三方。這也需要我設置一個bittorrent跟蹤器,這聽起來不像這個應用程序那麼容易,因爲不同的用戶對不同的文件有不同的訪問權限。

0

@jjnguy 我正在尋找一個java小程序或ActiveX組件,將爲我做到這一點。這些都是非技術用戶,所以我們真的只是想要讓他們點擊下載完整的文件在指定的位置結束了

7

@levand:

我的實際偏好,作爲一個用戶,在這些情況下是下載一個輕量級的.exe文件,爲您下載文件。

這對很多很多網站來說都是一個難題。用戶要麼是應該是極不情願從網站上下載.exe文件並且無所不能地運行它們。即使他們並不總是那麼謹慎,不謹慎的行爲是而不是我們應該鼓勵作爲負責任的開發者。

如果您正在研究公司內部網的某些事情,那麼.exe可能是一個好的解決方案,但對於公共網絡?沒門。

@TonyB:

什麼是做到這一點,而無需使用FTP的最佳方式。

對不起,但我不得不問,爲什麼要求。你的問題按照「沒有任何肉或熱源來烹飪牛排的最佳方式是什麼? FTP是爲此設計了

0

@ceejayoz

我完全同意,但它的部分要求爲我們的客戶。將有FTP訪問,但每個用戶都可以選擇通過HTTP或FTP下載。有一些用戶會在企業防火牆後面不允許使用FTP

我以前見過其他網站這麼做(MSDN,Adobe),所以我希望已經有東西在那裏了,而不是必須做一個在家裏(和學習Java和/或ActiveX)

0

我說一次安裝下載管理器,類似於msdn。

但是,成爲一個沒有針對工作更優化協議的CDN並非易事。我無法想象一個足夠有價值的商業模式,可以將如此龐大的文件下載作爲核心競爭力,除非你正在做類似msdn的事情。如果您創建了一個胖客戶端,那麼您至少有機會獲得與用戶,廣告或其他收入模式更多的時間,因爲您可能會花費數十萬美元來支持這種服務。

0

上述小程序方法的問題是,除非最終用戶修改其Java安全屬性,否則您的小程序將無權保存到硬盤驅動器。

可能使用Java Web Start(又名JNLP)。我認爲,如果它是一個已簽名的應用程序,它可以獲得寫入硬盤的額外權限。這與下載一個EXE方法沒有太大的區別。問題在於用戶必須安裝正確版本的Java,並且必須正確設置Java Web Start功能。

我會推薦exe方法,因爲它對於非技術用戶來說是最容易使用的。

1

如果你不想寫內部的Java代碼,也有商業小程序的解決方案可供選擇:

他們都有EVAL版本,你可以下載和測試。

0

有一些用戶,這將是企業的防火牆不允許FTP背後...

是用戶可能被允許安裝和運行.exe文件嚴格的防火牆一樣,從你的網站?

1

幾個想法:

  • 暴雪使用重量輕的.exe BitTorrent的包裝爲自己的補丁。我不完全確定它是如何完成的,但它看起來像官方BitTorrent客戶端的品牌版本。
  • 上傳到Amazon S3,提供文件的種子鏈接(所有的S3文件都是自動啓用BitTorrent的),以及完整的HTTP下載鏈接。 See S3 documentation
0

看一看cURLThis article描述瞭如何通過HTTP進行多部分同時下載。過去我使用cURL來管理超過300GB的FTP下載文件。

另一個提示:如果增加客戶端NIC配置上的TCP窗口的大小,您可以提高下載時間。根據您的物理網絡,將其設置爲與操作系統允許的一樣高,您應該看到最多2倍的改進。當通過WAN進行FTP傳輸時,這在Windows 2000和2003中適用於我。不利的一面是,它可能會增加所有其他網絡流量的開銷,對於網絡數據包只需要幾KB,但現在被迫以64KB數據包發送/接收。你的旅費可能會改變。

編輯:你試圖完成什麼?誰是觀衆?我假設你有一點想通過自己的網絡來做到這一點;但你似乎暗示客戶端是互聯網上的人。我認爲我們需要更明確的要求。

1

怎麼說「我們建議您安裝Free Download Manager下載此文件,您將有能夠恢復文件和加速下載的額外好處。」

個人使用我從來沒有下載任何東西,內置的瀏覽器下載工具,除非我必須(如Gmail附件)