【问题标题】:C# webClient->DownloadFile download don't startC# webClient->DownloadFile 下载不启动
【发布时间】:2013-09-27 11:16:30
【问题描述】:

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

非常感谢!

【问题讨论】:

    标签: c# asp.net-mvc razor download webclient


    【解决方案1】:

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

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

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

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

    return Redirect(fileUrl);
    

    【讨论】:

    • 你好 Jamie,是的,我正在尝试将文件从我的本地服务器(也从在本地服务器上工作的 iis express)下载到我的本地服务器(到本地 PC,我喜欢浏览器问我,在哪个目录)。在 Java 中,如果服务器是本地主机,则不是问题。在 C# 中不能本地开发软件吗?我不敢相信!谢谢你。标记
    • 我认为“本地”的含义有些混乱。 DownloadFile 方法将文件下载到服务器。本地是指本地服务器,而不是使用网站的用户。所以用户永远不会看到下载对话框,因为文件被发送到服务器,而不是用户。您必须通过将用户重定向到文件来将文件发送给用户。然后他们的浏览器将处理下载对话框。这有意义吗?
    • 你好 Jamie,你是对的,我绝对误解了 DownloadFile。我喜欢实现客户端浏览器的下载对话框。但返回 Redirect(fileUrl);也不起作用,我得到下一个动作页面但没有下载对话框。也不例外。
    • 你好,杰米,我尝试返回 File(fileName, "application/pdf");这几乎就是我需要的东西。但我得到的不是对话框,而是 pdf 文件在浏览器内部打开。我现在需要的一件事是,浏览器不显示文件,而只提示下载对话框。谢谢!
    • 嗨@Mark。 File 有一个 3 参数签名,它将强制下载而不是默认行为。第三个参数在响应中添加了 content-dispositionfilename 标头,这就是强制下载的原因。
    猜你喜欢
    • 2020-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-20
    • 2018-03-28
    • 1970-01-01
    • 2016-01-23
    相关资源
    最近更新 更多