office 2007各种格式附件下载后变成zip文件问题解决方法

从IIS或者Tomcat之类的Web服务器通过二进制流下载文件时(比如通过设置Header为Content-disposition:inline),如果被下载的文件是Office2007的dotx,docx,pot等后缀的时候,下载对话框中的图标会变成ZIP的,相应的文件名也会成为zip为扩展后缀的文件。其实出现这样的情况,是由于IE中对下载文件类型的判断,假如找不到相应后缀的MIME的话,会自动根据数据流来判断文件的类型,而微软对Office2007的格式做了和以前完全不同的处理。
     以前的Office文档是100%的二进制格式。第三方的工具操作起来非常不方便,而 Office2007从整体上都是基于XML格式的,这里并不是说Office2007文档可以保存成XML格式。而是Office2007默认的文档格式就是XML的(Word的docx、Excel的xlsx等)。也许有人会感到奇怪,用文本编辑器打开docx后,显示的仍然是二进制格式,并不是什么 XML。其实docx并不是普通的XML格式,当然,也不只是一个XML文件,docx本质上是一个zip文件,里面有一系列的xml、目录和其他的文件。如果我们将docx改成zip。就可以用winzip等软件将其解开。

正是由于这样的原因,当MIME中不存在相对应的Office2007类型的情况下,被自动识别为ZIP文件了。

解决的方法:可以在web.xml中找到<mime-mapping></mime-mapping>这样的定义,word、excel、ppt配置如下:

<mime-mapping>
<extension>docx</extension>
<mime-type>
application/vnd.openxmlformats-officedocument.wordprocessingml.document
</mime-type>
</mime-mapping>
<mime-mapping>
<extension>pptx</extension>
<mime-type>
application/vnd.openxmlformats-officedocument.presentationml.presentation
</mime-type>
</mime-mapping>
<mime-mapping>
<extension>xlsx</extension>
<mime-type>
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
</mime-type>
</mime-mapping>

时间: 2024-12-08 22:49:17

office 2007各种格式附件下载后变成zip文件问题解决方法的相关文章

平台上传的附件下载后打开为空白原因

昨天从平台上下载了一个上传的附件文档,打开后发现是空白的:最开始还以为是上传附件的时候没弄对:但是通过测试发现上传过程是正确的,而且在点击查看附件的时候是可以看到附件的的大小:这是怎么回事呢?原来在架设服务器端IIS的时候忘记在MIME类型中添加下图中的这两个类型了: 原文地址:http://bbs.delit.cn/thread-840-1-1.html 转载请注明出处: 撰写人:度量科技http://www.delit.cn

JQuery Easyui引入easyui-lang-zh_CN.js后出现乱码的问题解决方法

最近使用Easyui做项目,发现引入easyui-lang-zh_CN.js单元后页面会出现乱码,无论设置<meta>.还是Response都不能解决问题.用记事本打开easyui-lang-zh_CN.js文件,里面的内容也是正常的啊,而且文件格式也是UTF8的.这个问题一度困扰了我很长时间. 后来一次无意中用eclips打开easyui-lang-zh_CN.js文件,发现里面的中文部分全部是乱码,这才明白,原来是这个文件本身有问题,于是用记事本打开这个文件,重新复制粘贴到eclips中再

dialogic d300语音卡驱动重装后启动报错问题解决方法

dialogic d300 驱动重装后 dlstart  报错解决 问题描述:dlstart  后如下报错 [[email protected] data]#dlstop Stopping Dialogic Services... Stopping Clocking Daemon:[  纭畾  ] Stopping ClockingServer:[  纭畾  ] Stopping Telephony System Monitor:[  纭畾  ] Stopping Dialogic(R)

Kali和Backtrack中更新metasploit后无法连接数据库的问题解决方法

很多使用kali和bt的朋友在更新metasploit后出现了无法连接postgresql的问题,国内相关的资料也不是很多.metasploit中连接数据库可以大大提高我们的使用效率,比如 search ms,在默认的慢速查找下比连接db后慢了很多.今天就详细说一下如何解决,提供2种方法. 首先,启动运行msfconsle前需要先启动下面2个服务. 然后,在终端运行msfconsole,然后msf > db_status 查看当前数据库连接状况,成功的话会提示  [*] postgresql c

关于批量下载ftp服务器的文件的方法

前言:批量下载网上有一堆,但是无奈都基本是对自己项目作用不大,研究了一下,分享和记录 1.首先要知道这个是从html页面发起的所以必须要加入这段话才行 //之前尝试用ajax和layer弹层来实现发现都会产生错误因此必须要用这个方法才行,前端的方法 location.href = 你想要访问的.php网页; //后端的实现方法 <?php//这个class类是借鉴网友的,具体内部逻辑我也不太清晰,所以.......class zipfile { var $datasec = array ();

linux 编译C语言代码后产生OBJ文件的方法

如果你不指定编译成什么文件,gcc默认一步到位,直接生成可执行文件你可以试试以下几个参数 -c 只激活预处理,编译,和汇编,也就是他只把程序做成obj文件 例子用法: gcc -c hello.c 他将生成.o的obj文件 -S 只激活预处理和编译,就是指把文件编译成为汇编代码. 例子用法 gcc -S hello.c 他将生成.s的汇编代码,你可以用文本编辑器察看 -E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面. 例子用法: gcc -E hello.c > piano

windows上使用pip下载东西时报编码错误问题解决方法

原因是pip安装python包会加载我的用户目录,我的用户目录恰好是中文的,ascii不能编码.解决办法是: python目录 Python27\Lib\site-packages 建一个文件sitecustomize.py 内容写: import sys sys.setdefaultencoding('gb2312') python会自动运行这个文件. 快来加入群[python爬虫交流群](群号570070796),发现精彩内容.

解决IIS6.0无法下载Office 2007文件格式(ex:docx)的问题

最近在写有关文件上下载的程序.... 发现将Office 2007文件格式(例如docx档)的文件上传到server端是ok的... 但从client端要下载回来,却发生了错误的现象.... 最后到网络找了一下数据.才知道在IIS6.0要下载office 2007格式的文件 要先到IIS管理员→网站→右键[内容]→HTTP标头→MIME类型→新增→ 副文件名:.docx MIME类型:application/vnd.openxmlformats-officedocument.wordproces

OFFICE 2007 SP3后续补丁微软官方下载地址

手工分析得到的地址,已经删除其他语言的补丁集,已经剔除了重复的补丁包,解压后可以直接放在OFFICE 2007下的UPDATES,点setup.exe时,office2007安装程序会自动安装相应的补丁 http://download.windowsupdate.com/d/msdownload/update/software/secu/2013/08/ace-x-none_3ba0467e65edec6f29d483fc745cfa69ab6c3ab3.cab http://download.