• Tomcat 在IE中下载rar文件直接以乱码方式打开解决方案


    这几天一直很纳闷,在Tomcat部署的网站中的下载文件中,如果文件是rar类型的,一点击下载rar文件就直接打开,并且出现乱码,右键另存为浏览器也是默认为html格式,一直以为是浏览器IE的问题,后来发现其实不关浏览器的问题,而是Tomcat服务器配置的问题,具体如下:

    web.xml文件中配置<mime-mapping>下载文件类型
    TOMCAT在默认情况下下载.rar的文件是把文件当作text打开,以至于IE打开RAR文件为乱码,如果遇到这种情况时不必认为是浏览器的问题,大多数浏览器应该不会死皮赖脸地把二进制文件当作文本打开,一般都是服务器给什么浏览器就开什么.解决方法: 

     打开conf/web.xml,加入下面的代码. 

     <mime-mapping> 
     <extension>doc</extension>
     <mime-type>application/msword</mime-type> 
     </mime-mapping> 
     <mime-mapping> 
     <extension>xls</extension> 
     <mime-type>application/msexcel</mime-type> 
     </mime-mapping> 
     <mime-mapping> 
     <extension>pdf</extension> 
     <mime-type>application/pdf</mime-type> 
     </mime-mapping>
     <mime-mapping> 
     <extension>zip</extension> 
     <mime-type>application/zip</mime-type> 
     </mime-mapping>
     <mime-mapping> 
     <extension>rar</extension> 
     <mime-type>application/rar</mime-type> 
     </mime-mapping>
     <mime-mapping> 
     <extension>txt</extension> 
     <mime-type>application/txt</mime-type> 
     </mime-mapping>
     <mime-mapping> 
     <extension>chm</extension> 
     <mime-type>application/mshelp</mime-type>
     </mime-mapping> 
     <mime-mapping>
      <extension>mp3</extension>
      <mime-type>audio/x-mpeg</mime-type>
     </mime-mapping>


     重启TOMCAT,清除IE缓存,再打开RAR的文件时就可以正常下载了. 

     不同的ContentType 会影响客户端所看到的效果.

     默认的ContentType为 text/html  也就是网页格式.

     代码如:

     <% response.ContentType ="text/html" %>  
     <!--#i nclude virtual="/ContentType.html" -->

     显示的为网页,而

     <% response.ContentType ="text/plain" %>  
     <!--#i nclude virtual="/sscript/ContentType.html" -->

     则会显示html原代码.

     以下为一些常用的 ContentType

    GIF images 
     <% response.ContentType ="image/gif" %>  
     <!--#i nclude virtual="/myimage.gif" --> 
     JPEG images 
     <% response.ContentType ="image/jpeg" %>  
     <!--#i nclude virtual="/myimage.jpeg" --> 
     TIFF images 
     <% response.ContentType ="image/tiff" %>  
     <!--#i nclude virtual="/myimage.tiff" --> 
     MICROSOFT WORD document 
     <% response.ContentType ="application/msword" %>  
     <!--#i nclude virtual="/myfile.doc" --> 
     RTF document 
     <% response.ContentType ="application/rtf" %>  
     <!--#i nclude virtual="/myfile.rtf" --> 
     MICROSOFT EXCEL document 
     <% response.ContentType ="application/x-excel" %>  
     <!--#i nclude virtual="/myfile.xls" --> 
     MICROSOFT POWERPOINT document 
     <% response.ContentType ="application/ms-powerpoint" %>  
     <!--#i nclude virtual="/myfile.pff" --> 
     PDF document 
     <% response.ContentType ="application/pdf" %>  
     <!--#i nclude virtual="/myfile.pdf" --> 
     ZIP document 
     <% response.ContentType ="application/zip" %>  
     <!--#i nclude virtual="/myfile.zip" --> 

     下面是更详细的ContentType

    application/andrew-inset ez  
     application/mac-binhex40 hqx  
     application/mac-compactpro cpt  
     application/mathml+xml mathml  
     application/msword doc  
     application/octet-stream bin dms lha lzh exe class so dll  
     application/oda oda  
     application/ogg ogg  
     application/pdf pdf  
     application/postscript ai eps ps  
     application/rdf+xml rdf  
     application/smil smi smil  
     application/srgs gram  
     application/srgs+xml grxml  
     application/vnd.mif mif  
     application/vnd.mozilla.xul+xml xul  
     application/vnd.ms-excel xls  
     application/vnd.ms-powerpoint ppt  
     application/vnd.wap.wbxml wbxml  
     application/vnd.wap.wmlc .wmlc wmlc  
     application/vnd.wap.wmlscriptc .wmlsc wmlsc  
     application/voicexml+xml vxml  
     application/x-bcpio bcpio  
     application/x-cdlink vcd  
     application/x-chess-pgn pgn  
     application/x-cpio cpio  
     application/x-csh csh  
     application/x-director dcr dir dxr  
     application/x-dvi dvi  
     application/x-futuresplash spl  
     application/x-gtar gtar  
     application/x-hdf hdf  
     application/x-httpd-php .php .php4 .php3 .phtml  
     application/x-httpd-php-source .phps  
     application/x-javascript js  
     application/x-koan skp skd skt skm  
     application/x-latex latex  
     application/x-netcdf nc cdf  
     application/x-pkcs7-crl .crl  
     application/x-sh sh  
     application/x-shar shar  
     application/x-shockwave-flash swf  
     application/x-stuffit sit  
     application/x-sv4cpio sv4cpio  
     application/x-sv4crc sv4crc  
     application/x-tar .tgz tar  
     application/x-tcl tcl  
     application/x-tex tex  
     application/x-texinfo texinfo texi  
     application/x-troff t tr roff  
     application/x-troff-man man  
     application/x-troff-me me  
     application/x-troff-ms ms  
     application/x-ustar ustar  
     application/x-wais-source src  
     application/x-x509-ca-cert .crt  
     application/xhtml+xml xhtml xht  
     application/xml xml xsl  
     application/xml-dtd dtd  
     application/xslt+xml xslt  
     application/zip zip  
     audio/basic au snd  
     audio/midi mid midi kar  
     audio/mpeg mpga mp2 mp3  
     audio/x-aiff aif aiff aifc  
     audio/x-mpegurl m3u  
     audio/x-pn-realaudio ram rm  
     audio/x-pn-realaudio-plugin rpm  
     audio/x-realaudio ra  
     audio/x-wav wav  
     chemical/x-pdb pdb  
     chemical/x-xyz xyz  
     image/bmp bmp  
     image/cgm cgm  
     image/gif gif  
     image/ief ief  
     image/jpeg jpeg jpg jpe  
     image/png png  
     image/svg+xml svg  
     image/tiff tiff tif  
     image/vnd.djvu djvu djv  
     image/vnd.wap.wbmp .wbmp wbmp  
     image/x-cmu-raster ras  
     image/x-icon ico  
     image/x-portable-anymap pnm  
     image/x-portable-bitmap pbm  
     image/x-portable-graymap pgm  
     image/x-portable-pixmap ppm  
     image/x-rgb rgb  
     image/x-xbitmap xbm  
     image/x-xpixmap xpm  
     image/x-xwindowdump xwd  
     model/iges igs iges  
     model/mesh msh mesh silo  
     model/vrml wrl vrml  
     text/calendar ics ifb  
     text/css css  
     text/html .shtml html htm  
     text/plain asc txt  
     text/richtext rtx  
     text/rtf rtf  
     text/sgml sgml sgm  
     text/tab-separated-values tsv  
     text/vnd.wap.wml .wml wml  
     text/vnd.wap.wmlscript .wmls wmls  
     text/x-setext etx  
     video/mpeg mpeg mpg mpe  
     video/quicktime qt mov  
     video/vnd.mpegurl mxu  
     video/x-msvideo avi  
     video/x-sgi-movie movie  
     x-conference/x-cooltalk ice 

     TXT文件做下载的JS实现

    <%@ page contentType="text/html; charset=gb2312" language="java" %>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>无标题文档</title>
    <script language="JavaScript">   
      function openfile(url)   {   
      var a =window.open(url,"_blank","");   
      a.document.execCommand("SaveAs");   
      a.close();   
      }   
    </script>
    </head>
    <body>
    <p><a href="#" onclick='openfile("aa.txt")'>下载</a></p>
    </body>
    </html>
    转载请注明出处[http://samlin.cnblogs.com/] 
  • 相关阅读:
    中国行业应用软件领域恶性循环的原因是什么?【转载】
    UED之开新窗口
      关于周华健,我觉得有那么几个时期:转
    投影
    undo自动调优介绍
    (原)Oracle事务与Undo段的分配过程
    数据所在的数据块实验
    Oracle 检查点队列与增量检查点
    GC Buffer Busy Waits处理
    如何找出Oracle instance中当前打开游标open cursor的总数?
  • 原文地址:https://www.cnblogs.com/pegasus827/p/8668428.html
Copyright © 2020-2023  润新知