标签:
具体步骤:完整代码:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'fileUpload.jsp' starting page</title>
</head>
<body>
	<form
		action="${pageContext.request.contextPath}/control/list_execute.action"
		enctype="multipart/form-data" method="post">
		文件:<input type="file" name="uploadfile"> <input type="submit"
			value="上传" />
	</form>
</body>
</html>
package struts2.example.action;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
public class HelloWorldAction {
	private File uploadfile;
	private String uploadfileFileName;// 上传文件的文件名称
	public File getUploadfile() {
		return uploadfile;
	}
	public void setUploadfile(File uploadfile) {
		this.uploadfile = uploadfile;
	}
	public String getUploadfileFileName() {
		return uploadfileFileName;
	}
	public void setUploadfileFileName(String uploadfileFileName) {
		this.uploadfileFileName = uploadfileFileName;
	}
	public String execute() {
		// 得到站点下files文件夹的绝对路径
		String realpath = ServletActionContext.getServletContext().getRealPath(
				"/files");
		System.out.print(realpath);
		if (uploadfile != null) {
			/*
			 * 参数1:文件保存的目录 参数2:文件保存的文件名
			 */
			File saveFile = new File(new File(realpath), uploadfileFileName);
			// 用saveFile.getParentFile()得到目录,如果目录不存在,则创建该目录
			if (!saveFile.getParentFile().exists())
				saveFile.getParentFile().mkdirs();
			// 对文件进行保存
			try {
				FileUtils.copyFile(uploadfile, saveFile);
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			ActionContext.getContext().put("upload_success", "文件上传成功!");
		}
		return "success";
	}
}
<pre name="code" class="html"><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
         "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
         "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
	<constant name="struts.multipart.maxSize" value="10701096" />
	<package name="csdn" namespace="/control" extends="struts-default">
		<action name="list_*" class="struts2.example.action.HelloWorldAction"
			method="{1}">
			<!-- 定义处理结果与视图资源之间的关系 -->
			<result name="success">/WEB-INF/page/showInfo.jsp</result>
		</action>
	</package>
</struts>
<constant name="struts.multipart.maxSize" value="10701096">
如果上传的文件过大,如上百兆,应通过应用软件上传,通过web上传不稳定。
标签:
原文地址:http://blog.csdn.net/lindonglian/article/details/46575067