Chinaunix首页 | 论坛 | 博客
  • 博客访问: 170607
  • 博文数量: 51
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 422
  • 用 户 组: 普通用户
  • 注册时间: 2013-06-23 16:12
文章分类

全部博文(51)

文章存档

2015年(1)

2014年(45)

2013年(5)

我的朋友

分类: LINUX

2014-05-30 17:04:17



Struts2文件上传,基本的配置如下:


UploadFileAction


Java代码  收藏代码
  1. package jp.co.ricoh.action.upload;  
  2.   
  3. import java.io.BufferedInputStream;  
  4. import java.io.BufferedOutputStream;  
  5. import java.io.File;  
  6. import java.io.FileInputStream;  
  7. import java.io.FileOutputStream;  
  8. import java.io.InputStream;  
  9. import java.io.OutputStream;  
  10. import java.util.Date;  
  11.   
  12. import org.apache.struts2.ServletActionContext;  
  13.   
  14. import com.opensymphony.xwork2.ActionSupport;  
  15.   
  16. public class FileUploadAction extends ActionSupport {  
  17.     /** 
  18.      *  
  19.      */  
  20.     private static final long serialVersionUID = 7944571812664822722L;  
  21.     private static final int BUFFER_SIZE = 16 * 1024;  
  22.     private File file;  
  23.     private String contentType;  
  24.     private String fileName;  
  25.     private String imageFileName;  
  26.     private String caption;  
  27.   
  28.     public File getFile() {  
  29.         return file;  
  30.     }  
  31.   
  32.     public void setFile(File file) {  
  33.         this.file = file;  
  34.     }  
  35.   
  36.     public String getFileContentType() {  
  37.         return contentType;  
  38.     }  
  39.   
  40.     public void setFileContentType(String contentType) {  
  41.         this.contentType = contentType;  
  42.     }  
  43.   
  44.     public String getFileFileName() {  
  45.         return fileName;  
  46.     }  
  47.   
  48.     public void setFileFileName(String fileName) {  
  49.         this.fileName = fileName;  
  50.     }  
  51.   
  52.     public String getImageFileName() {  
  53.         return imageFileName;  
  54.     }  
  55.   
  56.     public void setImageFileName(String imageFileName) {  
  57.         this.imageFileName = imageFileName;  
  58.     }  
  59.   
  60.     public String getCaption() {  
  61.         return caption;  
  62.     }  
  63.   
  64.     public void setCaption(String caption) {  
  65.         this.caption = caption;  
  66.     }  
  67.   
  68.     public static int getBufferSize() {  
  69.         return BUFFER_SIZE;  
  70.     }  
  71.   
  72.     private static void copyFile(File src, File dest) {  
  73.         try {  
  74.             InputStream in = null;  
  75.             OutputStream out = null;  
  76.             try {  
  77.                 in = new BufferedInputStream(new FileInputStream(src),  
  78.                         BUFFER_SIZE);  
  79.                 out = new BufferedOutputStream(new FileOutputStream(dest),  
  80.                         BUFFER_SIZE);  
  81.                 byte[] buffer = new byte[BUFFER_SIZE];  
  82.                 while (in.read(buffer) > 0) {  
  83.                     out.write(buffer);  
  84.                 }  
  85.             } finally {  
  86.                 if (null != in) {  
  87.                     in.close();  
  88.                 }  
  89.                 if (null != out) {  
  90.                     out.close();  
  91.                 }  
  92.             }  
  93.         } catch (Exception e) {  
  94.             // TODO Auto-generated catch block  
  95.             e.printStackTrace();  
  96.         }  
  97.     }  
  98.   
  99.     private static String getExtention(String fileName) {  
  100.         int pos = fileName.lastIndexOf(".");  
  101.         return fileName.substring(pos);  
  102.     }  
  103.   
  104.     @Override  
  105.     public String execute() throws Exception {  
  106.         imageFileName = new Date().getTime() + getExtention(fileName);  
  107.         File imageFile = new File(ServletActionContext.getServletContext()  
  108.                 .getRealPath("/uploadFile") + "/" + imageFileName);  
  109.         System.out.println(imageFile.getName());  
  110.         copyFile(file, imageFile);  
  111.         return super.execute();  
  112.     }  
  113. }  

 struts.xml配置如下:


Xml代码  收藏代码
  1. <package name="upload" namespace="/" extends="struts-default">  
  2.             <action name="FileUploadAction" class="jp.co.ricoh.action.upload.FileUploadAction">  
  3.                 <interceptor-ref name="fileUpload">  
  4.                     <param name="allowedTypes">  
  5.                         image/bmp,image/png,image/gif,image/jpeg,image/jpg,  
  6.                           
  7.                     param>  
  8.                 interceptor-ref>  
  9.                 <interceptor-ref name="defaultStack">interceptor-ref>  
  10.                 <result name="input">/upload/upload.jspresult>  
  11.                 <result name="success">/upload/showUpload.jspresult>  
  12.             action>  
  13.         package>  

 


Upload.jsp


Java代码  收藏代码
  1. <%@ page language="java" contentType="text/html; charset=utf-8"  
  2.     pageEncoding="utf-8"%>  
  3. <%@ taglib prefix="s" uri="/struts-tags" %>      
  4. "-//W3C//DTD HTML 4.01 Transitional//EN" "">  
  5.   
  6.   
  7. "Content-Type" content="text/html; charset=utf-8">  
  8. Struts2 File Upload  
  9.   
  10.   
  11.       
  12.     "FileUploadAction" method="post" enctype="multipart/form-data">  
  13.         "file" label="Image File">  
  14.         "caption" label="Caption">  
  15.           
  16.       
  17.   
  18.   

 


但是,我明明上传的文件格式是正确,还是出现:



  • Content-Type not allowed: file "09poC_wallpapers.jpg" "upload_1ea6fe4e_13611ac7d7c__8000_00000012.tmp" image/pjpeg







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配置文件中需要



      image/bmp,image/png,image/gif,image/jpeg,image/jpg,
      image/pjpeg ,image/bmp, image/gif, image/x-png,


 

阅读(1416) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~