打开对话框下载pdf

本文关键字:pdf 下载 打开对话框 | 更新日期: 2023-09-27 18:14:20

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

打开对话框下载pdf

您需要添加一个按钮(图像按钮,linkbutton或按钮),并处理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();

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

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

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