文件不以'%PDF开头 - '在浏览器中显示PDF时

时间:2016-04-17 14:38:50

标签: c# asp.net pdf sharepoint web

以下是详细信息:

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应用程序。

0 个答案:

没有答案