使用URL从服务器下载文件

时间:2013-05-08 09:17:34

标签: c# download webclient

我有一个dot net mvc项目,在服务器端人们生成报告。为了允许从Web下载报告,我在控制器中有一个返回文件的功能。

public FilePathResult DownloadResult(int id) {

     Result res = MyModel.GetResultById(id);

     if (res.DownloadPath != null)
     {
        return File(res.DownloadPath, "application/zip", Path.GetFileName(res.DownloadPath));
     }
}

Result res = MyModel.GetResultById(id); if (res.DownloadPath != null) { return File(res.DownloadPath, "application/zip", Path.GetFileName(res.DownloadPath)); } }

现在我想使用WebClient

下载此文件

我的问题是保存下载的文件与服务器返回的名称相同。控制器上的DownloadResult方法返回带有名称的File [如代码Path.GetFileName(res.DownloadPath)中所示],但在客户端,我不知道文件服务器的名称是否正在返回。我必须在wc.DownloadFile

中给出一个本地文件名作为param

有没有办法知道它返回的文件名服务器,以便我可以在本地保存我的文件与服务器上的相同名称。

1 个答案:

答案 0 :(得分:0)

您可以检查返回的Httpheader:

内容 - 处置:附件;文件名= FILENAME

我不是100%确定mvc会返回此信息,但我认为当您返回FilePathResult时,您可以设置Httpheader。

您当然可以将此添加到您的回复中:

Response.AppendHeader("Content-Disposition", "attachment; filename=" + Path.GetFileName(res.DownloadPath));