这几天一直很纳闷,在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
>
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
<
script
language
="JavaScript"
>
...
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
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
>