响应BinaryWrite无法在Android浏览器上运行

时间:2012-05-01 17:23:08

标签: c# android asp.net

我在数据库中有一个字节数组,我需要以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();

你能想到我能用它在所有浏览器上运行吗?

感谢帮助

由于

2 个答案:

答案 0 :(得分:2)

一些事情......

  1. 更改内容类型以更正mime类型的PDF文件。其中有大量这些正在使用application / pdf,application / x-pdf,application / acrobat,applications / vnd.pdf,text / pdf,text / x-pdf“,我们只使用application / pdf。

    Response.ContentType =“application / pdf”;

  2. 然后,如果您希望浏览器打开并显示PDF文件,请删除Content-Disposition标题。

  3. ...或...如果您希望浏览器下载PDF文件,请将Content-Disposition类型更改为“attachment”而不是“inline”。

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

答案 1 :(得分:0)

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

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