使用C#代码下载的zip文件是无效的(downloaded zip file using c# co

2019-09-22 07:16发布

我有一个存储一些zip文件斑点网MVC服务器。 我可以,如果我点击超链接成功下载这些zip文件。 但是,如果我尝试下载使用Web客户端的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);
}

我使用的Web客户端下载此文件的客户端

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

如果我通过点击浏览器上的超链接下载文件,文件大小为2.9 MB。 然而,使用Web客户端文件大小为5KB。 貌似Web客户端无法正常下载文件。 任何人都可以请建议我一个方法来下载文件。

Answer 1:

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



Answer 2:

我也有这个问题,但我发现一个简单的解决方案,我想从“下载此ZIP文件http://sodco.ir/Choobkhat/Update/update.zip ”,并提取它们。 但Web客户端不下载它。

我的解决方案:

第1步:到“d:\ update.zi”:从“\ update.zip d”改变我的文件名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);


文章来源: downloaded zip file using c# code is invalid