首页 > 代码库 > struts2_10_单个文件的上传:

struts2_10_单个文件的上传:

lib下导入jar文件:commons-io-1.3.2.jar;该jar文件包含FileUtils类。

1)employeeAction中的代码为:

public class employeeAction {

	// 要上传的文件
	private File image;
	// 上传文件的文件名称,image为上传字段的名称,FileName为固定字段
	private String imageFileName;

	public String getImageFileName() {
		return imageFileName;
	}

	public void setImageFileName(String imageFileName) {
		this.imageFileName = imageFileName;
	}

	public File getImage() {
		return image;
	}

	public void setImage(File image) {
		this.image = image;
	}

	public String execute() throws Exception {
		// 得到上传后被保存的文件的真实路径
		String realpath = ServletActionContext.getServletContext().getRealPath("/images");
  // 在内部运行是输出真实路径以便查找文件
		System.out.println(realpath);
		if (image != null) {// 如果上传文件不为空
// 用realpath创建一个文件,把文件image赋给新创建的文件,保存为savefile文件
	File savefile = new File(new File(realpath), imageFileName);
  // 如果savefile 未创建成功,重新创建
  if (!savefile.getParentFile().exists()) {
				savefile.getParentFile().mkdir();
			}
			// 将savefile文件拷贝给image文件
			FileUtils.copyFile(image, savefile);
			// 向request中传入值,当上传成功时,在输出界面上显示
			ActionContext.getContext().put("message", "上传成功");
		}
		return "success";//跳转到Action
	}
}

1)输入界面的代码为:

 <body>
  <form action="<%=request.getContextPath()%>
   /employee/employee.action" enctype="multipart/form-data"   
   method="post">
		 文件:<input type="file" name="image"/>
		 <input type="submit" value=http://www.mamicode.com/"上传"/>>

1)输出界面的代码为:

 <body>
    ${message } <br>
  </body>

4)struts.xml文件配置:

<struts>

	<package name="employee" namespace="/employee" 
  extends="struts-default">
		<action name="list*" class="employee.employeeAction" 
  method="{1}">
			<result name="success">/message.jsp</result>
		</action>
	</package>
</struts>

(二)多个文件的上传:

struts.xml文件和输出层代码都与(一)中相同。

1)employeeAction中的代码:

public class employeeAction {
	private File[] image;
	private String[] imageFileName;

	public File[] getImage() {
		return image;
	}

	public void setImage(File[] image) {
		this.image = image;
	}

	public String[] getImageFileName() {
		return imageFileName;
	}

	public void setImageFileName(String[] imageFileName) {
		this.imageFileName = imageFileName;
	}

	public String execute() throws Exception {

		String realpath = ServletActionContext.getServletContext().getRealPath(
				"/images");
		System.out.println("文件存储路径:" + realpath);
		if (image != null) {
			File savedir = new File(realpath);
			if (!savedir.exists()) savedir.mkdirs();
			for (int i = 0; i < image.length; i++) {
				File savefile = new File(savedir, imageFileName[i]);
				FileUtils.copyFile(image[i], savefile);
			}
			ActionContext.getContext().put("message", "上传成功");
		}
		return "success";
	}

2)输入界面的代码:

<form
		action="<%=request.getContextPath()%>/employee/listexecute.
  action" enctype="multipart/form-data" method="post">
		<!-- 文件类型相同; name的值相同 , 且等于Action中的属性值 -->
		文件1:<input type="file" name="image" /><br>
		文件2:<input type="file" name="image" /><br> 
		文件3:<input type="file" name="image" /><br> 
		<input type="submit" value=http://www.mamicode.com/"上传" />>










struts2_10_单个文件的上传: