以下是详细信息:
Firefox: update 12
AdobeReader: 11
Input: Convert.FromBase64String(string)=> byte[]
Task: to display the pdf within the browser
PDF 存储在数据库中。
我已经阅读并尝试了很多可能的解决方案并修复了此错误。但我没有快乐。
是否可以知道转换后的字符串到byte []是否已损坏?转换为byte []的值是否可能在进程中被损坏?
pdfFile的值,数据类型byte [],来自Web服务。
这是我做的通用处理程序:
public partial class ProcessPDFRequest : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
try
byte[] currentBillPDF = proxy.GetPdf(refNum, date);
using (MemoryStream ms = new MemoryStream(currentBillPDF))
{
context.Response.Clear();
context.Response.ContentType = "application/pdf";
if(isInline!="true")
context.Response.AddHeader("content-disposition", "attachment;filename=PDF_CurrentBill.pdf");
else
context.Response.AddHeader("content-disposition", "inline;filename=PDF_CurrentBill.pdf");
context.Response.Buffer = true;
ms.WriteTo(context.Response.OutputStream);
context.Response.End(); ;
}
修改
我使用context.Response.Flush(); context.Response.End();
当我创建另一个Web应用程序时,PDF已成功显示。但是,当我在原始解决方案中将转换后的字符串用于byte []时,标题中声明的错误仍然存在。我已经检查了字节并在记事本中进行了比较,它们都显示了%PDF -
我有什么遗失的东西吗?原始解决方案是一个sharepoint Web应用程序。