我有一个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有没有办法知道它返回的文件名服务器,以便我可以在本地保存我的文件与服务器上的相同名称。
答案 0 :(得分:0)
您可以检查返回的Httpheader:
内容 - 处置:附件;文件名= FILENAME
我不是100%确定mvc会返回此信息,但我认为当您返回FilePathResult时,您可以设置Httpheader。
您当然可以将此添加到您的回复中:
Response.AppendHeader("Content-Disposition", "attachment; filename=" + Path.GetFileName(res.DownloadPath));