jboss7直接下载docx文件,却变成了zip文件,怎么解决?

如题.

以下是我掌握的资料:

当我们从IIS或者Tomcat之类的Web服务器通过二进制流下载dotx,docx,pot等后缀的文件时,如果下载后变成zip格式的文件, 那么是由于IE中对下载文件类型的判断,假如找不到相应后缀的MIME的话,会自动根据数据流来判断文件的类型,而微软对Office2007的格式做了 和以前完全不同的处理。

以前的Office文档是100%的二进制格式。第三方的工具操作起来非常不方便,而 Office2007从整体上都是基于XML格式的,这里并不是说Office2007文档可以保存成XML格式。而是Office2007默认的文档格 式就是XML的(Word的docx、Excel的xlsx等)。docx本质上是一个zip文件,里面有一系列的xml、目录和其他的文件。如果我们将 docx改成zip。就可以用winzip等软件将其解开。

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

要解决该问题,是需要在Server端进行更改的,也就是说我们的计算机并没有问题。

来自:http://answers.microsoft.com/zh-hans/ie/forum/ie7_6-windows_xp/ie%E4%B8%8B%E8%BD%BDdocx%E6%89%A9%E5%B1%95/873ec6f1-531b-453d-bbf2-c3cc44c99ba9

jboss4我也知道是这样解决的:

进入jboss目录server\default\deploy\jboss-web.deployer\conf,打开web.xml文件,在里面加入

<mime-mapping>
    <extension>xlsx</extension>
    <mime-type>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</mime-type>
  </mime-mapping>
  <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>
tomcat是这样解决的:

打开conf文件夹下的web.xml文件,加入上面那段代码即可。

developer.jboss.org 给出的方案是在自己的application中的web.xml中加入(如下图):

点击去查看:https://developer.jboss.org/thread/175169

关键是在我的应用里,这个并不起作用。


----一叶浮萍「2014年11月04日 12时24分06秒」补充话题----

搞错了,因为我的应用分了两部分,其中文件上传到另外一个虚拟目录,但该目录没有配置web.xml,而导致的。配置web.xml的mime-mapping之后就可以了。
https://developer.jboss.org/thread/175169
该答案为正解。

选中的解决方案,同样要配置application的web.xml.不如只配置一处。
一叶浮萍
分享到:
1

解决方案:

1、在自己的application的web.xml中,配置问题中的mime-mapping格式。

2、jboss 在standalone模式下,修改E:\software\jboss-as-7.1.1.Final2\standalone\configuration\standalone.xml 文件。

 <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
      <configuration>
         <jsp-configuration development="true"/>
        <mime-mapping name="docx" value="application/vnd.openxmlformats-officedocument.presentationml.template"/>
       </configuration>
       <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
       <virtual-server name="default-host" enable-welcome-root="true">
                <alias name="localhost"/>
                <alias name="example.com"/>
       </virtual-server>
</subsystem>



经过,这两步基本上就可以完成jboss7下的docx配置。

附注的我的解决思路:

刚开我也是通过百度来搜索各种的关键字来查找,基本上也只是能查找到提问者的相关信息。

然后使用google搜索:jboss as 7 mime-mapping 如下图:

图片中最后一条就是解决方案。

地址:https://docs.jboss.org/jbossweb/7.0.x/config/subsystem.html

到此完成

共2条评论

一叶浮萍 看来学会使用翻墙,使用google,真的大有帮助啊 「5年前」
草木全 回复 @一叶浮萍:直接访问:http://173.194.27.14/ 即可。 「5年前」
1
最后发现在自己应用的web.xml配置 即可
0
共 2 条   当前1/1页

© 2014 究问社区 copyRight 豫ICP备13003319号-1