我有一种在浏览器中填充PDF的方法。它可以完美地在浏览器中显示PDF。但是,在我单击“保存”底部并从本地打开下载的文件后,它显示
“Adobe Reader无法打开'xxx.pdf',因为它不是受支持的文件类型,或者因为文件已损坏(例如,它是作为电子邮件附件发送的,并且未正确解码)。”
以下是我的代码
public static void PopulatePDF(byte[] PDFcontents)
{
var response = HttpContext.Current.Response;
response.AppendHeader("Content-Disposition", "inline; filename=xxx.pdf");
response.AppendHeader("Content-Length", PDFcontents.Length.ToString());
response.AppendHeader("Content-Transfer-Encoding", "binary");
response.OutputStream.Write(PDFcontents,0,contents.PDFcontents);
response.BufferOutput = true;
response.Buffer = true;
response.ContentType = System.Net.Mime.MediaTypeNames.Application.Pdf;
response.BinaryWrite(PDFcontents);
response.Flush();
response.End();
}
该方法确实传递了数据(byte[2100217]
)并在浏览器中显示pdf。但棘手的部分是在使用“保存”后无法从本地下载的文件中打开它。
不确定两者之间发生了什么。这是由于我正在使用的Adobe Reader版本吗?这是Adobe Reader XI(版本11.0.10)。