我在页面加载处理程序中有一段ASP.Net 2.0代码,基本上看起来像这样:
Response.Clear();
Response.ContentType="application/pdf";
Response.TransmitFile("foo.pdf");
Response.End();当通过IIS或Cassini运行时,它在所有浏览器上都能很好地工作。但是,当我尝试使用mod_aspdotnet.so (我确实需要支持,并且通常没有什么奇怪的地方)通过Apache运行它时,我得到了各种各样的不良行为。使用Chrome、Firebird和IE,我得到一个"OK 200“页面,说”服务器遇到一个内部错误或错误配置,无法完成您的请求。“使用Safari,它最终会重新加载页面。
我已经在其他文件类型上尝试过了,不同的ContentType,WriteFile而不是TransmitFile,使用AddHeader提供内容长度和内容部署,以及BufferOutput。简而言之,对于如何找出问题所在,我已经没有什么想法了。任何想法都很感谢。
kd
发布于 2011-11-16 05:26:14
我终于让它起作用了。我不期望太多(有吗?)其他人在这艘船上,但如果你是,这是有效的:
Response.Clear();
Response.ContentType="application/pdf";
f=new FileStream(targetFile, FileMode.Open);
byte[] b=new byte[(int)f.Length];
f.Read(b, 0, f.Length);
f.Close();
Response.BinaryWrite(b);
Response.Flush();https://stackoverflow.com/questions/8126855
复制相似问题