我是C#编程的绝对初学者,有一个愚蠢的问题。我只想下载文件,这些文件位于带有WebClient.DownloadFile的临时目录中。 代码是(操作以按钮单击页面上的两个按钮之一开始):
[HttpPost]
[MultiButton(MatchFormKey = "action", MatchFormValue = "ABC")]
public ActionResult ABC(TestFormModel model)
{
string fileName = model.resultLink;
try
{
string tempPath = System.IO.Path.GetTempPath();
System.IO.Directory.SetCurrentDirectory(tempPath);
fileName = System.IO.Path.Combine(tempPath, fileName);
Uri uri = new Uri(fileName);
WebClient webClient = new WebClient();
webClient.DownloadFile(uri, "FFF");
}
catch (Exception ex)
{ ... }
return View();
}
现在我预计(阅读“使用指定URI将资源下载到本地文件。”文档中)来自浏览器的下载对话框将支持。但是没有发生。没有例外,没有下载对话框。我的代码出了什么问题?
非常感谢!
答案 0 :(得分:0)
在这种情况下,“本地文件”是服务器上的文件(本地到Web服务器),而不是最终用户的本地文件。
这里的想法是,一旦您将资源从一个位置下载到本地服务器,您就可以将用户重定向到该下载的文件,如果他们的浏览器设置为这样做,则会出现一个对话框,允许他们保存文件。
从外观上看,您将文件从本地服务器下载到本地服务器。
如果您的本地服务器上已经存在该文件,您只需在操作方法结束时重定向用户,他们的浏览器将处理剩下的工作。
return Redirect(fileUrl);