2010-07-19 15 views
13

Mime-türleri, Tomcat'in conf/web.xml dosyasında belirtilmiştir. Bu neye benziyor: Tomcat 6'da herhangi bir dosya uzantısı için varsayılan mime-tipe nasıl ayarlanır?

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

Daha önce ben aşağıdakileri deneyin:

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

ama işime yaramaz. Herhangi bir dosya uzantısı için varsayılan MIME türü nasıl belirlenir?

+0

* geçerli bir uzantı değil. Özel kodlamayı istediğiniz uzantıları belirtmeniz gerekir, aksi halde varsayılan metin/html olarak alınır. – JoseK

+0

Varsayılan "text/html" değerini bu "application/octet-stream" gibi bir şeye nasıl değiştirebilirim? Teşekkürler. –

+1

Tomcat 7 ile test etme Tüm mime-mapping girişlerini kaldırırsanız, gerçek yanıtın Content-Type üstbilgisini hiç içermeyeceğini keşfettim. Web tarayıcısı içeriğe bakacak ve içeriğe etiketlerini görüyorsa metin/html'ye çevirecektir. – rbeede

cevap

12

Yolu yoktur. Açıkça bunları kendiniz ayarlamanız gerekir. Bir servlet filtresi bunun için uygun bir yerdir.

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

Ancak bunun için iş gereksinimini çok sorguluyorum. SEO ve müşteri için sadece dezavantajlı. Tek amacınız Kaydet diyaloğunu açmaksa, bunu söylemelisiniz. Bunu gerçekleştirmek için yanlış bir mime tipini zorlamaktan çok daha iyi çözümler vardır.

+0

Teşekkürler! Filtre ihtiyacım olan şey. Varsayılan uygulama türü "application/octet-stream" i ayarlamak için kullanıyorum. İçerik türü belirtilmezse, istemcinin uygulaması http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6806893 –

+0

Anlaşmalı olduğundan çöküyor, tarayıcıları kandırmak için MIME türlerini zorlamak tehlikeli bir oyun olabilir. – Brandon

İlgili konular