0

我有一个gridview,其中有点击链接按钮上的链接按钮我可以下载文件,如pdf、jpeg、doc,但我想在点击链接按钮时显示浏览器本身

string pdfPath = Server.MapPath("~/SomePDFFile.pdf");
WebClient client = new WebClient();
Byte[] buffer = client.DownloadData(pdfPath);
Response.ContentType = "application/pdf";
Response.AddHeader("content-length", buffer.Length.ToString());
Response.BinaryWrite(buffer);

但我想在浏览器的链接按钮内打开像 jpeg、pdf、doc gridview 这样的文件

4

4 回答 4

1

这取决于文件类型以及当前系统如何配置以处理该类型。

例如,默认情况下,大多数图像只会在浏览器中打开;然而,对我来说,我已经将 Chrome 配置为 PDF 文件的默认注册应用程序,但这现在几乎不是标准的东西,许多普通用户在安装其他东西时只会被告知要下载的东西,比如 Foxit reader - 在这种情况下,如果浏览器未注册以处理文件类型,则不会发生。

于 2013-04-02T13:00:10.670 回答
1

在浏览器中显示 PDF 的第一种方法

protected void btnOpen_Click(object sender, EventArgs e)
{
Response.Redirect("SiteAnalytics.pdf");
}

通过设置响应对象的内容类型并在标题中添加 pdf 的二进制形式来在浏览器中显示 PDF 的第二种方法

protected void btnpdf_Click(object sender, EventArgs e)
{
string path = Server.MapPath("SiteAnalytics.pdf");
WebClient client = new WebClient();
Byte[] buffer = client.DownloadData(path);

if (buffer != null)
{
Response.ContentType = "application/pdf";
Response.AddHeader("content-length", buffer.Length.ToString());
Response.BinaryWrite(buffer);
}
于 2013-04-02T15:25:31.870 回答
0

您应该指定Content-Disposition: inline标题。如果浏览器会支持你在Content-Typeheader 中指定的类型的显示,它将显示在浏览器中。

相反Content-Disposition: attachment,它将强制浏览器为您的内容提供另存为按钮(即使它是 HTML)。

于 2013-04-02T13:59:17.337 回答
0

您可以在同一页面或另一个页面上的 iframe 中显示 pdf、jpg 等。例如:

<iframe id="iframe" runat="server" src="NameOfYourFolder/pdf.pdf"></iframe>

在这里,我已经硬编码了将在 iframe 中显示的 pdf 文件的路径。您需要创建一种机制来获取与 GridView 中该链接按钮关联的文件的路径,并通过嵌入的代码块将该路径传递给 iframe 的 src。

于 2013-04-03T10:07:01.867 回答