【问题标题】:open dialog to download pdf打开对话框以下载 pdf
【发布时间】:2011-12-28 08:56:12
【问题描述】:

我有一个 gridview,我在其中为用户提供了下载 pdf 文件的选项。当他们单击 pdf 图标时,有时会在新选项卡中打开 pdf 文件,有时会开始下载。我怎样才能让它总是下载?

【问题讨论】:

  • 视情况而定;在我们提供答案之前,您需要向我们展示一些关于您如何在网格中定义或检索 PDF 的代码。
  • 点击 pdf 图标我正在使用 javascript:window.open('src');return false; 打开文件

标签: c# asp.net


【解决方案1】:

为了始终强制下载,您需要添加 Content-Disposition 标头,如 AVD 所示;但是,我觉得这完全没有必要;我认为在新窗口中打开 PDF 的链接就足够了。换句话说,定义了target="_blank"。示例:

<a href="file.pdf" target="_blank">invoice</a>

然后,由用户决定是将文件保存在本地还是仅在屏幕上查看。我认为重要的是这不会干扰用户正在查看的当前页面。

【讨论】:

    【解决方案2】:

    您需要添加一个按钮(图像按钮、链接按钮或按钮)并处理 GridView 的 RowCommand 事件。在 RowCommand 处理程序中,您可以编写代码来下载文件。

    你可以使用Response对象的方法。

    string filepath=MapPath("~/files/file.pdf");
    byte []bytes=System.IO.File.ReadAllBytes(filepath);
    
    Response.Clear();
    Response.ClearHeaders();
    Response.AddHeader("Content-Type", "application/octet-stream");
    Response.AddHeader("Content-Length", bytes.Length.ToString());
    Response.AddHeader("Content-Disposition","attachment; filename=file.pdf");
    Response.BinaryWrite(bytes);
    Response.Flush();
    Response.End();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-22
      • 1970-01-01
      • 2011-01-03
      • 1970-01-01
      • 2011-05-30
      • 2011-02-20
      • 1970-01-01
      相关资源
      最近更新 更多