1.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>My JSP 'HelloWorld.jsp' starting page</title>
</head>
<body><br>
<s:form action="upload" method="post" enctype="multipart/form-data">
文件:<input type="file" name="test">
<br>
<input type="submit" value="提交">
</s:form>
</body>
</html>
2. Action类
public class FileUploadAction extends ActionSupport{
private File test; //临时文件,使命名要与jsp中file类型的input名称相同
private String testFileName; //文件名称
private String testContentType; //文件类型
public File getTest() {
return test;
}
public void setTest(File test) {
this.test = test;
}
public String getTestFileName() {
return testFileName;
}
public void setTestFileName(String testFileName) {
this.testFileName = testFileName;
}
public String getTestContentType() {
return testContentType;
}
public void setTestContentType(String testContentType) {
this.testContentType = testContentType;
}
@Override
public String execute() throws Exception {
System.out.println("文件名:"+this.testFileName+",文件类型:"+this.testContentType);
File saveFile = new File("E:/"+this.testFileName);
FileUtils.copyFile(this.test, saveFile);
return SUCCESS;
}
}
3.struts.xml配置
<package name="manager1" extends="struts-default">
<action name="upload" class="com.skymr.struts2.chapter5.action.FileUploadAction">
<result name="success">/regSuc.jsp</result>
</action>
</package>
4.配置文件类型和大小
<package name="manager1" extends="struts-default">
<action name="upload" class="com.skymr.struts2.chapter5.action.FileUploadAction">
<result name="success">/regSuc.jsp</result>
<result name="input">/upload.jsp</result>
<interceptor-ref name="fileUpload">
<param name="allowedTypes">image/png,image/jpeg,image/jpg,image/bmp,image/gif</param>
<param name="maximumSize">1024</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
</package>
5.上传大文件
<constant name="struts.multipart.maxSize" value="20000000"></constant>