【问题标题】:How to set default mime-tipe for any file extension in Tomcat 6?如何为 Tomcat 6 中的任何文件扩展名设置默认 mime 类型?
【发布时间】:2010-07-20 20:09:34
【问题描述】:

Mime 类型在 Tomcat 的 conf/web.xml 文件中指定。 它看起来像这样:

<mime-mapping>
   <extension>txt</extension>
   <mime-type>text/plain</mime-type>
</mime-mapping>

之前我尝试过:

<mime-mapping>
   <extension>*</extension>
   <mime-type>application/octet-stream</mime-type>
</mime-mapping> 

但这对我没有帮助。 如何为任何文件扩展名指定默认的 mime-type?

【问题讨论】:

  • * 不是有效的扩展名。您必须指定您想要特殊编码的扩展名,否则默认为 text/html。
  • 如何将默认的“text/html”值更改为“application/octet-stream”?谢谢。
  • 使用 Tomcat 7 进行测试我发现如果您删除所有 mime 映射条目,那么实际响应将根本不包含 Content-Type 标头。如果网页浏览器在内容中看到 标签,它将查看内容并将其转换为 text/html。

标签: tomcat mime-types


【解决方案1】:

没有办法。您需要自己明确设置它们。 servlet 过滤器是一个合适的地方。

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
    response.setContentType("application/octet-stream");
    chain.doFilter(request, response);
}

然而,我非常怀疑企业对此的需求。这只对 SEO 和客户不利。如果您的唯一目的是弹出 Save As 对话框,那么您应该这样说。有比强制错误的 mime 类型更好的解决方案来实现这一点。

【讨论】:

  • 谢谢!过滤器是我需要的。我用它来设置默认内容类型“application/octet-stream”。如果未指定内容类型,则客户端的应用程序由于bugs.sun.com/bugdatabase/view_bug.do?bug_id=6806893而崩溃
  • 同意,强制 MIME 类型以欺骗浏览器可能是一种危险的游戏。
猜你喜欢
  • 1970-01-01
  • 2020-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-06
  • 2021-03-11
相关资源
最近更新 更多