2009-05-22 60 views
9

一位朋友和我一直在討論通過互聯網發送大文件的最佳方式。 FTP,單個Web服務,分塊字節到多個Web服務,HTTP文件發佈(多部分消息),RIA接口(SilverLight或Flash)。大文件(30Mb +)通過互聯網上傳,有什麼更好的選擇?

缺少答案/解決方案嗎?

讓我給你更多我的具體情況。

我有一個.NET 2.0的Windows窗體的「客戶」應用程序通過Web服務與ASP.NET應用程序進行交互。在客戶端應用程序中,我需要能夠上傳大文件並將上傳狀態傳達給用戶。我正在做一個單一的網絡服務,但發現文件大小在互聯網上有問題,所以創建了多個Web服務來分塊字節數組。現在,想考慮其他選項。

一些研究做...

Silverlight的文件上傳 www.codeplex.com/SilverlightFileUpld

ASP.NET文件上傳 www.brettle.com/neatupload

FTP在.NET框架 www.windowsdevcenter.com/pub/a/windows/2006/12/12/building-ftp-services-using-net-20.html

要求別人的意見。謝謝。

+0

你使用任何一種壓縮,例如BZip2? – BobbyShaftoe 2009-05-22 11:17:23

回答

5

我們有這個問題,我們使用三個電話,一個Web服務解決方案,以啓動這一進程,第二次發送了該文件,並在第三結束該進程的塊,就像一個魅力。

0

我自己偏向於Flash/Silverlight選項(通常是Silverlight,因爲它與.NET完美集成)。這兩個選項都提供了一種穩定,快速的機制來上傳不會掛起正在工作的頁面的文件,從而允許用戶在上傳過程中執行其他任務(假設這些任務不會將它們帶到另一個頁面)。基於Flash的上傳服務,允許多個文件同時被上傳在DeviantArt.com的上傳偏差頁的

一個真正偉大的例子。您可以選擇要上傳的文件,然後在後臺通過瀏覽器的任何工作(在某些情況下,我想一個隱藏的iframe創建它提交文件的要求,如果無法使用閃光燈)提交,你會得到一個文件圖標,包含當前正在上傳的每個文件的異步進度指示器。

Flash/Silverlight的一個附加優點是,您可以在提交之前與客戶端上的文件進行交互,從而允許您執行諸如驗證數據不是惡意軟件,腳本等等。很難或根本不可能使用經典的文件上傳和JavaScript,這是由於目前網頁瀏覽器中通常存在的權限限制(出於很好的理由)。

對於您的應用程序,我會說Silverlight將是與您的網站進行交互的最佳選擇服務(我認爲經典的ASMX服務,但如果是WCF,Silverlight的也有WCF出色的支持了。)