您的位置:首页 > 运维架构 > Tomcat

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

2017-09-04 13:53 501 查看
这几天一直很纳闷,在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/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: