此demo为一个简单的struts2.2.1的文件上传到DEMO。。。
IDE:MyEclipse
Version: 8.6.1
Build id: 8.6.1-20101117 JDK:
java version "1.6.0_21"
Tomcat
tomcat-6.0.29
需要的JAR
![]() 页面核心代码:
<body>
<center> 导入 </center> <form action="common/file_upload.action" method="post" enctype="multipart/form-data"> 文件标题: <input type="text" name="upFileCaption" size="50" /> <br /> 选择文件: <input type="file" name="upFile" size="50" /> <br /> <input type="submit" value=" 上传 " /> </form> </body> struts.xml核心配置代码
<!-- 设置最大上传文件大小 200M--> <constant name="struts.multipart.maxSize" value="204800" /> <package name="common" extends="basePackage" namespace="/common">
<!-- 配置默认拦截器栈 --> <default-interceptor-ref name="baseStack" /> <action name="import">
<result>/WEB-INF/jsp/common/import.jsp</result> </action> <action name="file_upload" class="com.doximi.logistics.actions.common.FileUploadAction"> <interceptor-ref name="baseStack"/> <interceptor-ref name="fileUpload"> <param name="allowedTypes"> application/excel,application/vnd.ms-excel </param> <param name="maximumSize">102400</param> </interceptor-ref> <result name="error">/page/error.jsp</result> <result name="success">/page/success.jsp</result> </action> </package> java核心代码:
public class FileUploadAction extends ActionSupport {
/**
* */ private static final long serialVersionUID = 1L; private File upFile; private String upFileFileName; // 文件名 private String upFileContentType; // 文件类型 private String upFileCaption; // 文件备注 //getter,setter省略 public String execute() throws Exception { System.out.println("\n文件名:" + upFileFileName); System.out.println("文件类型:" + upFileContentType); //获取当前项目绝对路径+拼接文件路径 //注意如果目标文件夹(upload)不存在可能会找不到上传的文件 String filePath = ServletActionContext.getServletContext().getRealPath( "/upload") + "/" + upFileFileName; File tarFile = new File(filePath); try {
copyFile(upFile, tarFile); } catch (Exception e) { e.printStackTrace(); return ERROR; } System.out.println("文件存放位置:"+filePath+"\n"); return SUCCESS; } /**
* 复制文件 * * @param java * .io.File src * @param java * .io.File tar * @throws IOException */ private void copyFile(File src, File tar) throws IOException { InputStream inputStream = new FileInputStream(src); OutputStream outputStream = new FileOutputStream(tar); System.out.println("文件大小:" + inputStream.available()); byte[] content = new byte[1024]; while (inputStream.read(content) > 0) { outputStream.write(content); } outputStream.close(); inputStream.close(); } }
访问URL
common/import.action
完工
注意:
上传页面中的
<input type="file" name="upFile" size="50" />
name要对应java代码中的字段。
半年没写代码竟然连这都忘记了,弄一下午猛然发现没对应,难道脑袋被门卡了还没好?
郁闷,郁闷。。。
另附
Struts2 文件上传文件类型allowedTypes汇总(原文地址:http://aben328./blog/670078)'.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', '.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', |
|
来自: soft_xiang > 《Java》