gpt4 book ai didi

apache - PDF 文件在浏览器中显示为 "text/html"

转载 作者:行者123 更新时间:2023-12-01 14:37:47 25 4
gpt4 key购买 nike

上下文:Weblogic 应用服务器前面的 Apache。

用户可以通过我们的 J2EE 应用程序下载 PDF 文件。
仅使用 Weblogic,PDF 可以在所有浏览器的插件中正确显示。

但是对于 Apache,HTTP 响应 header 具有 Content-type "text/html"在其中(例如,我们可以在 Firebug 中看到),这会导致 Web 浏览器将文件内联显示为文本。
我们从 Java 代码中发送的 HTTP header 中的内容:Content-Disposition -> PDF 的名称和 Expires -> 0

没有设置 Content-type(为了简化,假设我们不知道应用程序中文件的类型),我们不可能更改它。

Apache 似乎覆盖了它并设置了自己的 Content-type , 为什么 ?
我们试图设置 DefaultType nonehttpd.conf但没有效果。

当然,这对所有文件类型都是一样的,PDF 只是一个例子。

任何的想法 ?

最佳答案

我昨天遇到了同样的问题。在我的例子中,我发现当我(无意中)没有在我的 WebLogic 应用程序的 HTTP 响应上设置任何 Content-Type 值时,Apache 会“有帮助地”注意到这一点,并设置一个 Content-Type header 为 text/html -- 即使我返回给客户的内容是二进制 PDF。

这导致原始二进制 PDF 内容像纯文本一样显示在客户端浏览器中。

在 Apache 中可能会抑制这种行为。但是,就我而言,我采用的解决方案是在提交响应之前在 HTTP 响应对象上设置 Content-Type。

(在我的应用程序中,一个在 WebLogic 上运行的 Oracle ATG Commerce 应用程序,在响应对象的 outputStream 上调用 DynamoHttpServletResponse.setContentType() 之后对 DynamoHttpServletResponse.setHeader()flush() 的任何调用都被静默忽略。)

关于apache - PDF 文件在浏览器中显示为 "text/html",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7832392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com