2010-09-02 125 views
0

我需要推出一個包含驅動程序的文件包,通過我的網站下載。唯一的問題是不能以ASCII模式傳輸,否則它會損壞。我查看了FTP下載的替代方案,但不想創建可以下載傳輸文件的應用程序。我正在研究創建一個將使用FTP進行下載過程的ASP.NET頁面的可能性。ASP.NET FTP下載

我已經看到了一些例子,但我也有幾個問題:

  1. 如何最好地保護的登錄/密碼信息,而不是把它的代碼?可以從web.config引用嗎?
  2. 任何顯示下載進度的可能性? AJAX是我唯一的選擇嗎?
  3. 允許用戶在本地機器上選擇下載位置的功能?

編輯 我能添加一個MIME類型應用程序/八位字節流的ZIP和EXE文件,這將迫使該文件的二進制下載?

+0

所以是爲客戶機通過瀏覽器訪問您網站上的這個文件包?或者,這是一種服務/工具來更新您已安裝在各種機器上的應用程序?消費機器是由您(或您的公司)控制還是一般公衆? – Zippit 2010-09-02 14:15:47

+0

我試圖遠離的是我必須分發出來的軟件包解決方案,它只不過是下載文件而已。我寧願有一個他們可以訪問的ASP.NET頁面來下載文件,它會通過FTP而不是HTTP來推送數據。 – Jeff 2010-09-02 14:18:15

+0

好的。那麼爲什麼你不能使用「標準http下載」呢?特別是如果你的應用壓縮了,應該沒有理由它會被下載損壞。 – Zippit 2010-09-02 16:39:20

回答

2

您可以使用WebClient類。

using (WebClient ftpClient = new WebClient()) 
{ 
    ftpClient.DownloadFile("ftp://domain.org/file.txt", "file.txt"); 
} 

對於認證的請求

using (WebClient ftpClient = new WebClient()) 
{ 
    ftpClient.DownloadFile("ftp://user:[email protected]/file.txt", "file.txt"); 
} 
+0

您也可以使用WebClient.OpenRead()和Response.OutputStream通過HTTP隧道傳輸FTP數據。 – tidwall 2010-09-02 15:06:54

0

爲什麼選擇FTP?您可以創建一個HTTP處理程序來壓縮二進制文件。以下是HTTP處理程序的更多信息: http://www.15seconds.com/issue/020417.htm

+0

感謝您的指針 - 我會審查它,看看我找到了什麼。 – Jeff 2010-09-02 14:28:15

+0

您可以擴展您對使用HTTP處理程序「按下二進制文件」的想法。這如何解決我的ASCII與BINARY傳輸問題? – Jeff 2010-09-02 14:41:57

+0

對不起,遲到回覆你。使用處理程序,您可以推送文本或二進制文件。 – Josh 2010-09-08 21:50:23