sturts2中上传文件拦截器参数allowedType注意事项
来源:互联网 发布:popo for mac 编辑:程序博客网 时间:2024/05/17 09:14
Struts2文件上传,基本的配置如下:
UploadFileAction
- package jp.co.ricoh.action.upload;
- import java.io.BufferedInputStream;
- import java.io.BufferedOutputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.util.Date;
- import org.apache.struts2.ServletActionContext;
- import com.opensymphony.xwork2.ActionSupport;
- public class FileUploadAction extends ActionSupport {
- /**
- *
- */
- private static final long serialVersionUID = 7944571812664822722L;
- private static final int BUFFER_SIZE = 16 * 1024;
- private File file;
- private String contentType;
- private String fileName;
- private String imageFileName;
- private String caption;
- public File getFile() {
- return file;
- }
- public void setFile(File file) {
- this.file = file;
- }
- public String getFileContentType() {
- return contentType;
- }
- public void setFileContentType(String contentType) {
- this.contentType = contentType;
- }
- public String getFileFileName() {
- return fileName;
- }
- public void setFileFileName(String fileName) {
- this.fileName = fileName;
- }
- public String getImageFileName() {
- return imageFileName;
- }
- public void setImageFileName(String imageFileName) {
- this.imageFileName = imageFileName;
- }
- public String getCaption() {
- return caption;
- }
- public void setCaption(String caption) {
- this.caption = caption;
- }
- public static int getBufferSize() {
- return BUFFER_SIZE;
- }
- private static void copyFile(File src, File dest) {
- try {
- InputStream in = null;
- OutputStream out = null;
- try {
- in = new BufferedInputStream(new FileInputStream(src),
- BUFFER_SIZE);
- out = new BufferedOutputStream(new FileOutputStream(dest),
- BUFFER_SIZE);
- byte[] buffer = new byte[BUFFER_SIZE];
- while (in.read(buffer) > 0) {
- out.write(buffer);
- }
- } finally {
- if (null != in) {
- in.close();
- }
- if (null != out) {
- out.close();
- }
- }
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- private static String getExtention(String fileName) {
- int pos = fileName.lastIndexOf(".");
- return fileName.substring(pos);
- }
- @Override
- public String execute() throws Exception {
- imageFileName = new Date().getTime() + getExtention(fileName);
- File imageFile = new File(ServletActionContext.getServletContext()
- .getRealPath("/uploadFile") + "/" + imageFileName);
- System.out.println(imageFile.getName());
- copyFile(file, imageFile);
- return super.execute();
- }
- }
package jp.co.ricoh.action.upload;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.util.Date;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class FileUploadAction extends ActionSupport {/** * */private static final long serialVersionUID = 7944571812664822722L;private static final int BUFFER_SIZE = 16 * 1024;private File file;private String contentType;private String fileName;private String imageFileName;private String caption;public File getFile() {return file;}public void setFile(File file) {this.file = file;}public String getFileContentType() {return contentType;}public void setFileContentType(String contentType) {this.contentType = contentType;}public String getFileFileName() {return fileName;}public void setFileFileName(String fileName) {this.fileName = fileName;}public String getImageFileName() {return imageFileName;}public void setImageFileName(String imageFileName) {this.imageFileName = imageFileName;}public String getCaption() {return caption;}public void setCaption(String caption) {this.caption = caption;}public static int getBufferSize() {return BUFFER_SIZE;}private static void copyFile(File src, File dest) {try {InputStream in = null;OutputStream out = null;try {in = new BufferedInputStream(new FileInputStream(src),BUFFER_SIZE);out = new BufferedOutputStream(new FileOutputStream(dest),BUFFER_SIZE);byte[] buffer = new byte[BUFFER_SIZE];while (in.read(buffer) > 0) {out.write(buffer);}} finally {if (null != in) {in.close();}if (null != out) {out.close();}}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}private static String getExtention(String fileName) {int pos = fileName.lastIndexOf(".");return fileName.substring(pos);}@Overridepublic String execute() throws Exception {imageFileName = new Date().getTime() + getExtention(fileName);File imageFile = new File(ServletActionContext.getServletContext().getRealPath("/uploadFile") + "/" + imageFileName);System.out.println(imageFile.getName());copyFile(file, imageFile);return super.execute();}}
struts.xml配置如下:
- <package name="upload" namespace="/" extends="struts-default">
- <action name="FileUploadAction" class="jp.co.ricoh.action.upload.FileUploadAction">
- <interceptor-ref name="fileUpload">
- <param name="allowedTypes">
- image/bmp,image/png,image/gif,image/jpeg,image/jpg,
- </param>
- </interceptor-ref>
- <interceptor-ref name="defaultStack"></interceptor-ref>
- <result name="input">/upload/upload.jsp</result>
- <result name="success">/upload/showUpload.jsp</result>
- </action>
- </package>
<package name="upload" namespace="/" extends="struts-default"><action name="FileUploadAction" class="jp.co.ricoh.action.upload.FileUploadAction"><interceptor-ref name="fileUpload"><param name="allowedTypes">image/bmp,image/png,image/gif,image/jpeg,image/jpg,</param></interceptor-ref><interceptor-ref name="defaultStack"></interceptor-ref><result name="input">/upload/upload.jsp</result><result name="success">/upload/showUpload.jsp</result></action></package>
Upload.jsp
- <%@ page language="java" contentType="text/html; charset=utf-8"
- pageEncoding="utf-8"%>
- <%@ taglib prefix="s" uri="/struts-tags" %>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>Struts2 File Upload</title>
- </head>
- <body>
- <s:fielderror></s:fielderror>
- <s:form action="FileUploadAction" method="post" enctype="multipart/form-data">
- <s:file name="file" label="Image File"></s:file>
- <s:textfield name="caption" label="Caption"></s:textfield>
- <s:submit></s:submit>
- </s:form>
- </body>
- </html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Struts2 File Upload</title></head><body><s:fielderror></s:fielderror><s:form action="FileUploadAction" method="post" enctype="multipart/form-data"><s:file name="file" label="Image File"></s:file><s:textfield name="caption" label="Caption"></s:textfield><s:submit></s:submit></s:form></body></html>
但是,我明明上传的文件格式是正确,还是出现:
- Content-Type not allowed: file "09poC_wallpapers.jpg" "upload_1ea6fe4e_13611ac7d7c__8000_00000012.tmp" image/pjpeg
.a :
application/octet-stream
.ai :
application/postscript
'.aif' :
'audio/x-aiff',
'.aifc' :
'audio/x-aiff',
'.aiff' :
'audio/x-aiff',
'.au' : '
audio/basic',
'.avi' :
'video/x-msvideo',
'.bat' :
'text/plain',
'.bcpio' :
'application/x-bcpio',
'.bin' :
'application/octet-stream',
'.bmp' :
'image/x-ms-bmp',
'.c' :
'text/plain',
# Duplicates :(
'.cdf' :
'application/x-cdf',
'.cdf'
: 'application/x-netcdf',
'.cpio' :
'application/x-cpio',
'.csh' :
'application/x-csh',
'.css' :
'text/css',
'.dll' :
'application/octet-stream',
'.doc' :
'application/msword',
'.dot' :
'application/msword',
'.dvi' :
'application/x-dvi',
'.eml' :
'message/rfc822',
'.eps' :
'application/postscript',
'.etx' :
'text/x-setext',
'.exe' :
'application/octet-stream',
'.gif' :
'image/gif',
'.gtar' :
'application/x-gtar',
'.h' :
'text/plain',
'.hdf' :
'application/x-hdf',
'.htm' :
'text/html',
'.html' :
'text/html',
'.ief' :
'image/ief',
'.jpe' :
'image/jpeg',
'.jpeg' :
'image/jpeg',
'.jpg' :
'image/jpeg',
'.js' :
'application/x-javascript',
'.ksh' :
'text/plain',
'.latex' :
'application/x-latex',
'.m1v' :
'video/mpeg',
'.man' :
'application/x-troff-man',
'.me' :
'application/x-troff-me',
'.mht' :
'message/rfc822',
'.mhtml' :
'message/rfc822',
'.mif' :
'application/x-mif',
'.mov' :
'video/quicktime',
'.movie' :
'video/x-sgi-movie',
'.mp2' :
'audio/mpeg',
'.mp3' :
'audio/mpeg',
'.mpa' :
'video/mpeg',
'.mpe' :
'video/mpeg',
'.mpeg' :
'video/mpeg',
'.mpg' :
'video/mpeg',
'.ms' :
'application/x-troff-ms',
'.nc' :
'application/x-netcdf',
'.nws' :
'message/rfc822',
'.o' :
'application/octet-stream',
'.obj' :
'application/octet-stream',
'.oda' :
'application/oda',
'.p12' :
'application/x-pkcs12',
'.p7c' :
'application/pkcs7-mime',
'.pbm' :
'image/x-portable-bitmap',
'.pdf' :
'application/pdf',
'.pfx' :
'application/x-pkcs12',
'.pgm' :
'image/x-portable-graymap',
'.pl' :
'text/plain',
'.png' :
'image/png',
'.pnm' :
'image/x-portable-anymap',
'.pot' :
'application/vnd.ms-powerpoint',
'.ppa' :
'application/vnd.ms-powerpoint',
'.ppm' :
'image/x-portable-pixmap',
'.pps' :
'application/vnd.ms-powerpoint',
'.ppt' :
'application/vnd.ms-powerpoint',
'.ps' :
'application/postscript',
'.pwz' :
'application/vnd.ms-powerpoint',
'.py' :
'text/x-python',
'.pyc' :
'application/x-python-code',
'.pyo' :
'application/x-python-code',
'.qt' :
'video/quicktime',
'.ra' :
'audio/x-pn-realaudio',
'.ram' :
'application/x-pn-realaudio',
'.ras' :
'image/x-cmu-raster',
'.rdf' :
'application/xml',
'.rgb' :
'image/x-rgb',
'.roff' :
'application/x-troff',
'.rtx' :
'text/richtext',
'.sgm' :
'text/x-sgml',
'.sgml' :
'text/x-sgml',
'.sh' :
'application/x-sh',
'.shar' :
'application/x-shar',
'.snd' :
'audio/basic',
'.so' :
'application/octet-stream',
'.src' :
'application/x-wais-source',
'.sv4cpio':
'application/x-sv4cpio',
'.sv4crc' :
'application/x-sv4crc',
'.swf' :
'application/x-shockwave-flash',
'.t' :
'application/x-troff',
'.tar' :
'application/x-tar',
'.tcl' :
'application/x-tcl',
'.tex' :
'application/x-tex',
'.texi' :
'application/x-texinfo',
'.texinfo':
'application/x-texinfo',
'.tif' :
'image/tiff',
'.tiff' :
'image/tiff',
'.tr' :
'application/x-troff',
'.tsv' :
'text/tab-separated-values',
'.txt' :
'text/plain',
'.ustar' :
'application/x-ustar',
'.vcf' :
'text/x-vcard',
'.wav' :
'audio/x-wav',
'.wiz' :
'application/msword',
'.wsdl' :
'application/xml',
'.xbm' :
'image/x-xbitmap',
'.xlb' :
'application/vnd.ms-excel',
# Duplicates :(
'.xls' :
'application/excel',
'.xls' :
'application/vnd.ms-excel',
.xml :
text/xml
.xpdl:
application/xml
.xpm :
image/x-xpixmap
.xsl :
application/xml
.xwd :
image/x-xwindowdump
.zip :
application/zip
firefox 和 ie 的文件类型区别
Firefox:
image/jpeg, image/bmp, image/gif, image/png
ie 6:
image/pjpeg ,image/bmp, image/gif, image/x-png
ie 7:
image/pjpeg, image/bmp, image/gif, image/x-png
ie 8:
image/pjpeg, image/bmp, image/gif, image/x-png
Ie 9:
image/jpeg, image/bmp, image/gif, image/png
所以在struts.xml配置文件中需要
<param name="allowedTypes">
image/png,image/gif,image/jpeg,image/jpg,
image/pjpeg ,image/bmp, image/x-png
</param>
- sturts2中上传文件拦截器参数allowedType注意事项
- sturts2文件上传功能
- sturts2拦截器
- sturts2上传文件,后台获取不到文件!
- Sturts2拦截器的应用Interceptor
- sturts2拦截器的使用实例
- struts.xml中设置拦截器,限制上传文件
- struts2 拦截器上传文件
- 文件上传与拦截器
- Sturts2 实现单文件和多文件的上传
- sturts2+Jquery uploadify的多文件上传功能
- struts2中怪异问题FileUploadInterceptor拦截器失效。多文件上传中限制文件类
- sturts2实现上传
- Sturts2传递传递参数3中方法以及获取
- Struts2文件上传(二)-文件上传拦截器
- Struts2上传文件拦截器实现文件上传
- Struts2 文件上传拦截器配置问题
- struts2 文件上传的拦截器问题
- javascript中未初始化的变量和未定义的变量的区别
- 连接池的作用
- struts2 权威指南 struts2的开发规范与技巧
- 利用MarchingCubesGreedy进行曲面重建
- Tomcat配置及域名邦定
- sturts2中上传文件拦截器参数allowedType注意事项
- MFC的程序执行顺序
- char
- python在linux安装和打开及基本语法
- Objective-C研究院之static关键字(六)
- s3c2410时钟信号:FCLK、HCLK和PCLK;clk_get_rate()
- sql server2005安装过程中出现了错误 COM+ 目录要求 (警告) 消息
- SQL Server减肥茶
- DNS负载均衡技术-同一个域名对应多个ip的方法