2

我有一个存储一些 zip 文件的 Dot Net MVC 服务器。如果单击超链接,我可以成功下载这些 zip 文件。但是,如果我尝试使用 WebClient 的 DownloadFile 下载 zip 文件,我可以下载 zip 文件我收到错误“Windows 无法打开文件夹,压缩的 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);
}

客户端我正在使用 Webclient 下载此文件

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

如果我通过单击浏览器上的超链接下载文件,文件大小为 2.9 mb。但是使用 webclient 文件大小为 5kb。看起来 WebClient 无法正确下载文件。谁能给我建议一种下载文件的方法。

4

2 回答 2

4

我不知道您的代码有什么问题,但您下载的那个 5kb 文件几乎可以肯定是一个 HTML 错误页面,其中可能包含信息,例如堆栈跟踪,这将帮助您找出问题所在。将其扩展名更改为 .html 并在浏览器中打开它。

于 2012-09-10T12:03:50.910 回答
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);
于 2017-02-02T11:18:29.033 回答