2012-09-10 59 views
2

我有一個DotNet MVC服務器,它存儲一些zip文件。如果我點擊超鏈接,我可以成功下載這些zip文件。但是,如果我嘗試下載使用Web客戶端的DownloadFile zip文件,我可以下載的zip文件,我得到一個錯誤「Windows無法打開該文件夾,壓縮ZIP文件夾無效」使用c#下載的zip文件代碼無效

服務器端代碼:

我使用的Web客戶端如果我通過點擊瀏覽器上的超鏈接下載文件下載此文件

WebClient wc = new WebClient(); 
wc.DownloadFile("http://servername/Results/DownloadFile/853", "localspkgfile.zip"); 

public FilePathResult DownloadFile(int id) 
{  
     string resultsdir = AppDomain.CurrentDomain.BaseDirectory + "Data\\ResultsDir\\" + res.RequestId.ToString(); 
     string downloadFile = System.IO.Path.GetFileName(res.DownloadPath); 
     string zipPath = System.IO.Path.Combine(resultsdir, downloadFile); 
     return File(zipPath, "application/zip", downloadFile); 
} 

客戶端,文件大小爲2.9 MB。然而使用webclient的文件大小是5kb。看起來WebClient無法正確下載文件。任何人都可以請建議我一種方法來下載文件。

回答

4

我不知道你的代碼有什麼問題,但你下載的5kb文件幾乎肯定是一個HTML錯誤頁面,它可能包含信息,比如堆棧跟蹤,這將幫助你弄清楚發生了什麼事情錯誤。將其擴展名更改爲.html並在瀏覽器中打開它。

+0

感謝您的指針,是我不好......其實這也是錯誤頁面。 –

0

我也有這個問題,但我找到了一個簡單的解決方案 我想從「http://sodco.ir/Choobkhat/Update/update.zip」 下載這個Zip文件並提取它們。但webClient沒有下載它。

我的解決方案:

第1步:我的文件名改變從 「d:\ update.zip」 到 「d:\ update.zi」 webClient.DownloadFileAsync("http://sodco.ir/Choobkhat/Update/update.zip", "D:\\update.zi);

它會開始下載,下載後完成:

步驟2:重命名update.zi到update.zi p

File.Move("update.zi", "update.zip");

第3步:提取它們

ZipFile.ExtractToDirectory(Application.StartupPath + "\\update.zip", Application.StartupPath);