在weblogic和tomcat下如何解决Word、Excel打开乱码以及不包含文件扩展名问题.
在weblogic应用程序下对于有时上传的文件,(如word、excel等)需要打开或下载到本地时,在weblogic容器默认情况下可能是以记事本打开从而导致乱码现象。为解决此问题可以在你的项目(project)下的web.xml文件中增加如下代码即可解决直接打开而出现乱码问题.
为了让能在IE浏览器中自动打开或弹出对话框的设置:需要在WEB.XML中进行如下的设置:
在WEB.XML中添加<mime-mapping> <extension>: 文件的扩展名 <mime-type>:
如能在IE中自动打开DOC,XLS,PDF文件需在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>
web.xml在WEB-INF目录下面.
至此即可解决出现上述的问题了.
另外页面中只需要增加:
response.setContentType("application/vnd.ms-Excel; charset=gb2312"); response.setHeader("Content-disposition","attachment;filename=BatchWork_1.xls");//Excel 这两行代码即可实现页面导出成Excel或Word(将ms-Excel修改成ms-Word即可)文档.
注: 以上两行代码是要加上新的页面上也就是导出需要重新做一个页面,在这个新的页面中加上这两句话即可.如果需要将filename= BatchWork_1.xls文件以中文名命名的话,可以这样写filename="+new String("查询.xls".getBytes("GBK"),"ISO8859-1")
如果一切顺利,只是文件不包含扩展名的话
response.setHeader("Content-disposition","attachment;filename=BatchWork_1.xls");
就行了
在web项目下下载生成的文件时,如果使用的是迅雷下载,会直接监听浏览器,导致多次调用下载使用的方法,有可能会是下载的文件内容与需要的内容不符合,因此最好把迅雷的配置中的浏览器监听给禁掉。
使用IE下载不会出问题。
在weblogic应用程序下对于有时上传的文件,(如word、excel等)需要打开或下载到本地时,在weblogic容器默认情况下可能是以记事本打开从而导致乱码现象。为解决此问题可以在你的项目(project)下的web.xml文件中增加如下代码即可解决直接打开而出现乱码问题.
为了让能在IE浏览器中自动打开或弹出对话框的设置:需要在WEB.XML中进行如下的设置:
在WEB.XML中添加<mime-mapping> <extension>: 文件的扩展名 <mime-type>:
如能在IE中自动打开DOC,XLS,PDF文件需在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>
web.xml在WEB-INF目录下面.
至此即可解决出现上述的问题了.
另外页面中只需要增加:
response.setContentType("application/vnd.ms-Excel; charset=gb2312"); response.setHeader("Content-disposition","attachment;filename=BatchWork_1.xls");//Excel 这两行代码即可实现页面导出成Excel或Word(将ms-Excel修改成ms-Word即可)文档.
注: 以上两行代码是要加上新的页面上也就是导出需要重新做一个页面,在这个新的页面中加上这两句话即可.如果需要将filename= BatchWork_1.xls文件以中文名命名的话,可以这样写filename="+new String("查询.xls".getBytes("GBK"),"ISO8859-1")
如果一切顺利,只是文件不包含扩展名的话
response.setHeader("Content-disposition","attachment;filename=BatchWork_1.xls");
就行了
在web项目下下载生成的文件时,如果使用的是迅雷下载,会直接监听浏览器,导致多次调用下载使用的方法,有可能会是下载的文件内容与需要的内容不符合,因此最好把迅雷的配置中的浏览器监听给禁掉。
使用IE下载不会出问题。