响应二进制写入在Android浏览器上不起作用

本文关键字:浏览器 不起作用 Android 二进制 响应 | 更新日期: 2023-09-27 18:32:46

我在数据库中有一个字节数组,我需要以pdf文件格式显示它。这是我这样做的方式。但是,这不适用于Android平板电脑(在2.3.5和3.2中检查)。

Response.Clear();
Response.ContentType = "application/octet-stream";
Response.BufferOutput = true;
Response.Buffer = false;
Response.AddHeader("Content-Length", binaryData.Length.ToString());
Response.AppendHeader("Content-Disposition", "inline;filename=ClientDocument.PDF");
// Response.BinaryWrite(binaryData);
Response.OutputStream.Write(binaryData, 0, binaryData.Length);
Response.End();

你们能想到我可以让它在所有浏览器上运行的方法吗?

感谢帮助

谢谢

响应二进制写入在Android浏览器上不起作用

有几件事...

  1. 更改内容类型以更正 PDF 文件的 MIME 类型。 有大量的这些正在使用的应用程序/pdf,应用程序/x-pdf,应用程序/杂技,应用程序/vnd.pdf,文本/pdf,文本/x-pdf",我们只使用应用程序/pdf。

    Response.ContentType = "application/pdf";

  2. 然后,如果您希望浏览器打开并显示 PDF 文件,请删除内容处置标头。

  3. 。或。。。如果您希望浏览器下载 PDF 文件,请将内容处置类型更改为"附件"而不是"内联"。

    Response.AppendHeader("Content-Disposition", "attachment;filename=ClientDocument.PDF");

您是否在测试平板电脑/手机上升级到最新版本的Android?

当我遇到类似的问题时,这为我解决了它(PDF 在从 Android 上的流或字节[] 发送到浏览器时无法打开或下载)。