asp.net 如何在网页浏览器中打开pdf文件?

46scxncf  于 2022-12-24  发布在  .NET
关注(0)|答案(3)|浏览(658)

我想显示PDF。我当前的代码使用PDF阅读器显示它。但是我想在浏览器的**单独选项卡中打开它。我该怎么做?我在网页中有一个链接按钮。我在onClick方法中设置了这个按钮。如何使用后端代码打开它?(在aspx中不使用链接)
下面是我的代码

string name = ddlAppealList.SelectedValue.ToString();
int refNo = Convert.ToInt32(name);
string FilePath = Server.MapPath("~/filesPDF/" + refNo + ".pdf");
WebClient User = new WebClient();
Byte[] FileBuffer = User.DownloadData(FilePath);
if (FileBuffer != null)
{
     Response.ContentType = "application/pdf";
     Response.AddHeader("content-length", FileBuffer.Length.ToString());
     Response.BinaryWrite(FileBuffer);
}
egdjgwm8

egdjgwm81#

回复。内容类型=“申请/pdf”;响应.TransmitFile(PDF文件路径);
要在新选项卡或窗口中打开PDF文件,您可以使用以下html代码:

<a href="view.aspx" target="_blank">View</a>

希望对你有帮助。

xzv2uavs

xzv2uavs2#

几周前我遇到过类似的情况,这段受this answer启发的代码帮助我解决了这个问题:

Response.AppendHeader("Content-Disposition", new System.Net.Mime.ContentDisposition { Inline = true, FileName = "pdfname.pdf" }.ToString());
vhipe2zx

vhipe2zx3#

下面是一个使用ActionResult在C# Web应用程序中打开pdf的示例。您也可以将pdf存储为数据库中的byte[],以简化代码。

public async Task<ActionResult> ViewPdf()
{    
    MemoryStream ms = new MemoryStream();
    FileStream stream = new FileStream("mypdf.pdf", FileMode.Open, FileAccess.Read);
    stream.CopyTo(ms);

    return File(ms.ToArray(), "application/pdf");
}

相关问题