我目前正在尝试在网络浏览器中打开pdf文件。我正在从数据库中检索pdf的字节数组并将其存储在应用程序文件夹中。从这里我不能在c#代码中启动PDF。任何帮助都会非常感激,因为我很难过。
if(dt.Rows.Count > 0)
{
byte[] data = (byte[])dt.Rows[0][0];
string strFileName = Utilities.GetAppBasePath()+Config.GetImages+DateTime.Now.Millisecond.ToString()+".pdf";
System.IO.File.WriteAllBytes(strFileName, data);
OpenPDF(strFileName);
}
protected void OpenPDF(string strFileName)
{
Response.Redirect(strFileName);
}
答案 0 :(得分:0)
我不知道运行PDF是否像运行普通应用程序一样,如果它运行,那么我认为你最好的选择可能是使用类似'Process.Start(strFileName);'的行。或'Process.Start(strFileName.Text);'
答案 1 :(得分:0)
嗨,大家好,感谢您的评论,非常感谢。没有例外,但它不起作用的原因是由于回拨电话。我现在已经触发了这个来解决这个问题。 Dan,你是对的,不能通过响应重定向这样调用,并解决了这个问题,我使用了以下代码:
if(dt.Rows.Count > 0)
{
byte[] data = (byte[])dt.Rows[0][0];
OpenPDF(data);
}
protected void OpenPDF(byte [] data)
{
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.ContentType = "application/pdf";
HttpContext.Current.Response.Charset = "";
HttpContext.Current.Response.AddHeader("Pragma", "public");
HttpContext.Current.Response.AddHeader("Content-Disposition", "inline; filename=\"image.pdf\"");
HttpContext.Current.Response.BinaryWrite(data);
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.Close();
HttpContext.Current.Response.End();
}
再次感谢您的帮助,为任何vauge-ness道歉,我非常擅长在本网站发帖,我希望这篇文章可以帮助其他人解决这个问题。
由于