`

struts.xml配置中的allowedTypes有哪些(文件上传)

    博客分类:
  • S2SH
阅读更多

--------------------------------------------

IE下载Office2007文件时在下载对话框中变成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文件了。解决的方法很简单,在Server端添加MIME映射就可以了。Tomcat的话,可以在Web.xml中找到<mime-mapping></mime-mapping>这样的定义,按照规则添加就可以了,IIS中按照下面的方法添加(以XML为例):

 

1.选择Default Web Site,弹出Properties对话框。 

2.选择HTTP Headers标签。 

3.在MIME Map下,单击File Types 标签并选择New Type。 

4.在Extension 域中键入.xml,在 Content Type 域中键入text/xml, 然后单击OK。

至于什么是MIME,一般的人应该都知道,这里简单的解释一下:

MIME (Multipurpose Internet Mail Extensions,多目的Internet邮件扩展)是创建用于电子邮件交换,网络文档,及企业网和Internet上的其他应用程序中的文件格式的规范。每个MIME格式包含一个MIME内容类型(”MIME type”)和指示存储在这个文件中的数据的子类型。MIME类型和子类型一般以类型/子类型的形式列出。MIME格式的内容广泛用于网络文档中

 

下面收集了大部分文件的扩展名和相应的MIME对应,有需要的可以在列表中找到并添加。 

 

.asx,video/x-ms-asf

.xml,text/xml

.tsv,text/tab-separated-values

.ra,audio/x-pn-realaudio

.sv4crc,application/x-sv4crc

.spc,application/x-pkcs7-certificates

.pmc,application/x-perfmon

.lit,application/x-ms-reader

.crd,application/x-mscardfile

.isp,application/x-internet-signup

.wmlsc,application/vnd.wap.wmlscriptc

.vst,application/vnd.visio

.xlam,application/vnd.ms-excel.addin.macroEnabled.12

.ttf,application/octet-stream

.pfm,application/octet-stream

.csv,application/octet-stream

.aaf,application/octet-stream

.one,application/onenote

.hta,application/hta

.atom,application/atom+xml

.323,text/h323

.mhtml,message/rfc822

.midi,audio/mid

.p7r,application/x-pkcs7-certreqresp

.mny,application/x-msmoney

.clp,application/x-msclip

.vsd,application/vnd.visio

.lpk,application/octet-stream

.bin,application/octet-stream

.onetoc,application/onenote

.x,application/directx

.wvx,video/x-ms-wvx

.vcf,text/x-vcard

.htc,text/x-component

.htt,text/webviewhtml

.h,text/plain

.mht,message/rfc822

.mid,audio/mid

.p7b,application/x-pkcs7-certificates

.gz,application/x-gzip

.dvi,application/x-dvi

.cpio,application/x-cpio

.vdx,application/vnd.ms-visio.viewer

.sldm,application/vnd.ms-powerpoint.slide.macroEnabled.12

.xlm,application/vnd.ms-excel

.fdf,application/vnd.fdf

.setreg,application/set-registration-initiation

.eps,application/postscript

.p7s,application/pkcs7-signature

.toc,application/octet-stream

.mdp,application/octet-stream

.ics,application/octet-stream

.chm,application/octet-stream

.asi,application/octet-stream

.afm,application/octet-stream

.evy,application/envoy

.wmp,video/x-ms-wmp

.qt,video/quicktime

.mpv2,video/mpeg

.xslt,text/xml

.etx,text/x-setext

.cod,image/cis-cod

.snd,audio/basic

.au,audio/basic

.man,application/x-troff-man

.qtl,application/x-quicktimeplayer

.pmw,application/x-perfmon

.class,application/x-java-applet

.iii,application/x-iphone

.csh,application/x-csh

.z,application/x-compress

.vtx,application/vnd.visio

.vsw,application/vnd.visio

.wps,application/vnd.ms-works

.potx,application/vnd.openxmlformats-officedocument.presentationml.template

.ps,application/postscript

.p7c,application/pkcs7-mime

.thn,application/octet-stream

.mso,application/octet-stream

.dot,application/msword

.doc,application/msword

.sgml,text/sgml

.nws,message/rfc822

.pbm,image/x-portable-bitmap

.ief,image/ief

.wav,audio/wav

.texi,application/x-texinfo

.mvb,application/x-msmediaview

.hdf,application/x-hdf

.vsx,application/vnd.visio

.dotm,application/vnd.ms-word.template.macroEnabled.12

.docm,application/vnd.ms-word.document.macroEnabled.12

.pptx,application/vnd.openxmlformats-officedocument.presentationml.presentation

.psm,application/octet-stream

.java,application/octet-stream

.eot,application/octet-stream

.jar,application/java-archive

.mpeg,video/mpeg

.xsf,text/xml

.map,text/plain

.uls,text/iuls

.rf,image/vnd.rn-realflash

.m3u,audio/x-mpegurl

.wma,audio/x-ms-wma

.aifc,audio/aiff

.mdb,application/x-msaccess

.mvc,application/x-miva-compiled

.stl,application/vnd.ms-pki.stl

.ppsx,application/vnd.openxmlformats-officedocument.presentationml.slideshow

.xlsb,application/vnd.ms-excel.sheet.binary.macroEnabled.12

.setpay,application/set-payment-initiation

.prm,application/octet-stream

.mix,application/octet-stream

.lzh,application/octet-stream

.hhk,application/octet-stream

.onepkg,application/onenote

.xaf,x-world/x-vrml

.flr,x-world/x-vrml

.IVF,video/x-ivf

.cnf,text/plain

.asm,text/plain

.tiff,image/tiff

.wax,audio/x-ms-wax

.ms,application/x-troff-ms

.tcl,application/x-tcl

.shar,application/x-shar

.sh,application/x-sh

.nc,application/x-netcdf

.hlp,application/winhlp

.oda,application/oda

.pfb,application/octet-stream

.fla,application/octet-stream

.wm,video/x-ms-wm

.rgb,image/x-rgb

.ppm,image/x-portable-pixmap

.ram,audio/x-pn-realaudio

.sit,application/x-stuffit

.dir,application/x-director

.mpp,application/vnd.ms-project

.xla,application/vnd.ms-excel

.ssm,application/streamingmedia

.axs,application/olescript

.ods,application/oleobject

.psp,application/octet-stream

.jpb,application/octet-stream

.wrz,x-world/x-vrml

.m1v,video/mpeg

.mno,text/xml

.cmx,image/x-cmx

.jpeg,image/jpeg

.dib,image/bmp

.rmi,audio/mid

.aiff,audio/aiff

.wmd,application/x-ms-wmd

.wri,application/x-mswrite

.pub,application/x-mspublisher

.ins,application/x-internet-signup

.wks,application/vnd.ms-works

.xls,application/vnd.ms-excel

.ai,application/postscript

.crl,application/pkix-crl

.qxd,application/octet-stream

.dwp,application/octet-stream

.xof,x-world/x-vrml

.wmv,video/x-ms-wmv

.nsc,video/x-ms-asf

.mpa,video/mpeg

.pnm,image/x-portable-anymap

.rpm,audio/x-pn-realaudio-plugin

.aif,audio/x-aiff

.me,application/x-troff-me

.pml,application/x-perfmon

.trm,application/x-msterminal

.m13,application/x-msmediaview

.js,application/x-javascript

.dxr,application/x-director

.potm,application/vnd.ms-powerpoint.template.macroEnabled.12

.xltx,application/vnd.openxmlformats-officedocument.spreadsheetml.template

.xlt,application/vnd.ms-excel

.xlc,application/vnd.ms-excel

.p10,application/pkcs10

.smi,application/octet-stream

.sea,application/octet-stream

.hqx,application/mac-binhex40

.spl,application/futuresplash

.movie,video/x-sgi-movie

.lsf,video/x-la-asf

.txt,text/plain

.jfif,image/pjpeg

.jpe,image/jpeg

.zip,application/x-zip-compressed

.wmf,application/x-msmetafile

.m14,application/x-msmediaview

.latex,application/x-latex

.wcm,application/vnd.ms-works

.pptm,application/vnd.ms-powerpoint.presentation.macroEnabled.12

.xlsx,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

.hhp,application/octet-stream

.aca,application/octet-stream

.accdb,application/msaccess

.jcz,application/liquidmotion

.wrl,x-world/x-vrml

.wmx,video/x-ms-wmx

.asr,video/x-ms-asf

.lsx,video/x-la-asf

.xsl,text/xml

.html,text/html

.tif,image/tiff

.der,application/x-x509-ca-cert

.pfx,application/x-pkcs12

.p12,application/x-pkcs12

.ppsm,application/vnd.ms-powerpoint.slideshow.macroEnabled.12

.cur,application/octet-stream

.accdt,application/msaccess

.hdml,text/x-hdml

.htm,text/html

.xbm,image/x-xbitmap

.jpg,image/jpeg

.texinfo,application/x-texinfo

.ppam,application/vnd.ms-powerpoint.addin.macroEnabled.12

.xlw,application/vnd.ms-excel

.rm,application/vnd.rn-realmedia

分享到:
评论

相关推荐

    Struts2 文件上传之文件类型 allowedTypes.txt

    通过使用Struts2框架中的`allowedTypes`配置,可以有效地控制哪些类型的文件可以被上传,从而增强系统的安全性和用户友好性。了解如何正确配置`allowedTypes`以及如何使用文件扩展名与MIME类型之间的转换对于开发...

    struts2文件上传,文件大小设置

    在Struts2的配置文件(通常为struts.xml)中,我们可以定义一个全局或特定于Action的`FileUploadInterceptor`。通过配置`maximumSize`属性,可以指定允许的最大文件大小。例如: ```xml ...

    struts2_上传allowedTypes_类型

    `allowedTypes`的配置通常在Action类或者Struts2配置文件(struts.xml或struts.properties)中进行。例如,你可以这样设置: ```java public class MyAction extends ActionSupport { private File file; private...

    struts2文件上传

    配置文件`struts.xml`中关于文件上传的部分可能类似以下代码: ```xml &lt;interceptor name="fileUpload" class="com.opensymphony.xwork2.interceptor.FileUploadInterceptor"&gt; &lt;param name="allowedTypes"&gt;text/...

    struts2 allowedTypes

    总而言之,`allowedTypes`是Struts2框架中用于控制文件上传安全性的关键配置,它通过限制允许上传的文件类型,有助于防止潜在的安全威胁。正确配置和使用`allowedTypes`可以提高应用的安全性和用户体验。

    文件上传struts配置

    本文将详细介绍如何在`struts.xml`配置文件中设置文件上传的相关属性,并通过示例代码来帮助理解具体配置项的作用。 #### 二、Struts2文件上传配置详解 ##### 1. **DTD声明** 在`struts.xml`文件中,首先需要进行...

    struts2文件上传.

    在Struts2中进行文件上传,首先需要在struts.xml配置文件中启用上传插件。添加以下配置以启用`struts2-convention-plugin`和`struts2-file-uploading-plugin`: ```xml &lt;constant name="struts.multipart....

    struts2笔记之文件上传

    在`struts.xml`配置文件中,我们需要指定Action的属性值,以便Struts2知道如何将表单数据映射到Action的属性。通过`&lt;param&gt;`标签可以实现这一点,例如: ```xml &lt;action name="upload" class="com.UploadAction"&gt; ...

    java struts2入门学习实例--使用struts2快速实现多个文件上传.doc

    - 在`struts.xml`配置文件中,需要指定所使用的自定义资源文件,如下所示: ```xml &lt;constant name="struts.custom.i18n.resources" value="testupload"/&gt; ``` 3. **设置文件上传的最大限制**: - 可以通过...

    在Struts 2中实现文件上传

    为了使 Struts 2 能够正确处理文件上传,还需要在 `struts.xml` 配置文件中添加 `fileUpload` 拦截器到 Action 的配置中。例如: ```xml &lt;package name="default" namespace="/" extends="struts-default"&gt; ...

    struts2s上传文件

    2. **struts.xml配置**:在Struts2的配置文件中,我们需要为文件上传操作指定一个`&lt;action&gt;`元素,并配置`&lt;interceptor-ref&gt;`以包含`params`和`fileUpload`拦截器。这两个拦截器负责解析`multipart/form-data`请求并...

    struts2文件上传,一直报类型不允许的问题

    如果你的项目中没有显式配置`allowedTypes`,那么Struts2会默认使用一个更严格的策略,可能不允许任何类型的文件上传。在这种情况下,你需要根据需求自定义这个列表。 接下来,我们可以查看压缩包内的`struts2文件...

    struts2文件上传下载示例

    同样,别忘了在struts.xml中配置多文件上传的大小限制。 3. 文件下载: 文件下载主要涉及设置HTTP响应头,包括Content-Type和Content-Disposition。在Action类中,你需要提供一个方法返回文件的输入流。在Struts2...

    struts2+hibernate 文件上传

    首先,我们需要在`struts.xml`配置文件中启用`fileUpload`拦截器,并配置相应的Action类来接收上传的文件。 1. **配置struts.xml** 在`struts.xml`中,为Action类添加一个接收文件的Result类型,比如`stream`,并...

    Struts2文件上传

    首先,我们需要在Struts2配置文件(struts.xml)中添加相关的action配置,以便处理文件上传请求。一个基本的配置可能如下所示: ```xml &lt;action name="upload" class="com.example.UploadAction"&gt; &lt;param name="...

    Struts2.0 实现文件上传进度

    1. **配置Struts2.0**:在struts.xml配置文件中,你需要启用Struts2的FileUpload拦截器,它负责解析multipart请求。以下是一个基本的配置示例: ```xml &lt;package name="default" namespace="/" extends="struts-...

    支持单文件和多文件上传,两种下载方式,Struts2

    2. Struts2配置:在struts.xml配置文件中,需要为对应的Action配置`&lt;param name="allowedTypes"&gt;`来指定允许上传的文件类型,以及`&lt;param name="maximumSize"&gt;`来限制文件大小。 3. Action处理:在Action类中,定义...

    Struts2实现文件上传

    在Struts2文件上传中,通常会有一个成员变量用于存储上传文件的MIME类型,这个变量的名称应该是`uploadContentType`而不是`uploadContextType`。尽管这个错误并不会导致程序无法运行,但修正它能提高代码的可读性和...

    struts2(ssh)带进度条文件上传 demo 的jar包3

    在Struts2的配置文件(struts.xml)中,我们需要为文件上传的动作添加特定的配置,比如设置`allowedTypes`来限制上传文件的类型,以及`maximumSize`来限制文件大小。 进度条功能通常通过JavaScript库如jQuery UI或...

    strust设置上传文件大小范围的细节

    在`struts.xml`配置文件中,你可以通过添加以下常量来改变这个上限: ```xml &lt;constant name="struts.multipart.maxSize" value="9000000"/&gt; ``` 这里的`9000000`表示9MB,意味着你现在允许的最大上传文件大小为9...

Global site tag (gtag.js) - Google Analytics