0

我是 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 的资源下载到本地文件。”)来自浏览器的下载对话框将提示。但什么也没有发生。也不例外,没有下载对话框。我的代码有什么问题?

非常感谢!

4

1 回答 1

0

在这种情况下,“本地文件”是服务器上的文件(Web 服务器的本地文件),而不是最终用户的本地文件。

这里的想法是,一旦您将资源从一个位置下载到本地服务器,您可以将用户重定向到该下载的文件,如果他们的浏览器设置为这样做,则会出现一个对话框,允许他们保存文件。

从外观上看,您正在将文件本地服务器下载本地服务器。

如果该文件已经存在于您的本地服务器上,您只需在操作方法结束时重定向用户,他们的浏览器将处理其余部分。

return Redirect(fileUrl);
于 2013-09-27T12:43:30.327 回答