struts2上传实例

来源:互联网 发布:navicat for mysql破解 编辑:程序博客网 时间:2024/05/29 14:36

struts上传实例

1、新建一个web工程,添加struts2支持

2、在index.jsp页面写一个上传表单如下:

<body><!-- 一定要指定method为post,enctype为 multipart/form-data--><form action="upload.action" method="post"enctype="multipart/form-data">file:<input name="file" type="file" /><!-- name和后台定义的File变量名字一致 --><input type="submit" value="上传" /></form></body>
3、在src下新建com.etc.action包,在包下新建UploadAction.java类:

package com.etc.action;import java.io.File;import java.io.IOException;import org.apache.commons.io.FileUtils;import com.opensymphony.xwork2.Action;import com.opensymphony.xwork2.ActionSupport;public class UploadAction extends ActionSupport {private static final long serialVersionUID = -477184906674151401L;private File file;//定义一个File类型的变量,临时文件,需要另存到别的目录去private String fileFileName;//文件名 File变量+FileNameprivate String fileContentType;//文件上传类型 File变量+ContentType/** * Description:上传方法:将上传的文件保存在e:/upload目录下 * @return * @author zoey * @throws IOException  * @date 2017年7月24日 */public String upload() throws IOException{String uploaddir = "D:/upload";new File(uploaddir).mkdirs();//如果目录不存在,就递归创建文件夹,如果已经存在,就不新建文件夹String filename = System.currentTimeMillis()+fileFileName;//避免文件名重复FileUtils.copyFile(file, new File(uploaddir,filename));return Action.SUCCESS;}public File getFile() {return file;}public void setFile(File file) {this.file = file;}public String getFileFileName() {return fileFileName;}public void setFileFileName(String fileFileName) {this.fileFileName = fileFileName;}public String getFileContentType() {return fileContentType;}public void setFileContentType(String fileContentType) {this.fileContentType = fileContentType;}}
4、配置struts.xml文件:

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"><struts><package name="upload" namespace="/" extends="struts-default"><action name="upload" class="com.etc.action.UploadAction" method="upload"><result>/success.jsp</result></action></package></struts>    
5、在WebRoot下新建success.jsp页面如下:

<body>上传成功</body>
6、运行:http://localhost:8080/struts-uploaddownload/index.jsp




上传之后,跳转到success.jsp页面,显示 上传成功 字样

注意:

struts默认只能上传大概2M左右的文件,如果上传较大的文件,就会报错,可以在struts.xml中添加常量配置,进行修改:

<constant name="struts.multipart.maxSize" value="1024000000"></constant>
可以在struts2-core-2.2.1.jar下的org.apache.struts2下的/org/apache/struts2/default.properties中找到