Struts2上传文件示例
源代码:Struts2Upload.rar
1.包如下:请自行下载
2.Action类
package
com.sterning;
import java.io.File;
import javax.servlet.ServletContext;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.util.ServletContextAware;
import com.opensymphony.xwork2.ActionSupport;
public class StrutsFileUpload extends ActionSupport implements
ServletContextAware {
private File upload; // 实际上传文件
private String uploadContentType; // 文件的内容类型
private String uploadFileName; // 上传文件名
private String fileCaption; // 上传文件时的备注
private ServletContext context;
public String execute() throws Exception {
try {
String targetDirectory = context.getRealPath( " /upload " );
String targetFileName = uploadFileName;
File target = new File(targetDirectory, targetFileName);
FileUtils.copyFile(upload, target);
setUploadFileName(target.getPath()); // 保存文件的存放路径
} catch (Exception e) {
addActionError(e.getMessage());
return INPUT;
}
return SUCCESS;
}
public String getFileCaption() {
return fileCaption;
}
public void setFileCaption(String fileCaption) {
this .fileCaption = fileCaption;
}
public File getUpload() {
return upload;
}
public void setUpload(File upload) {
this .upload = upload;
}
public String getUploadContentType() {
return uploadContentType;
}
public void setUploadContentType(String uploadContentType) {
this .uploadContentType = uploadContentType;
}
public String getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String uploadFileName) {
this .uploadFileName = uploadFileName;
}
public void setServletContext(ServletContext context) {
this .context = context;
}
}
import java.io.File;
import javax.servlet.ServletContext;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.util.ServletContextAware;
import com.opensymphony.xwork2.ActionSupport;
public class StrutsFileUpload extends ActionSupport implements
ServletContextAware {
private File upload; // 实际上传文件
private String uploadContentType; // 文件的内容类型
private String uploadFileName; // 上传文件名
private String fileCaption; // 上传文件时的备注
private ServletContext context;
public String execute() throws Exception {
try {
String targetDirectory = context.getRealPath( " /upload " );
String targetFileName = uploadFileName;
File target = new File(targetDirectory, targetFileName);
FileUtils.copyFile(upload, target);
setUploadFileName(target.getPath()); // 保存文件的存放路径
} catch (Exception e) {
addActionError(e.getMessage());
return INPUT;
}
return SUCCESS;
}
public String getFileCaption() {
return fileCaption;
}
public void setFileCaption(String fileCaption) {
this .fileCaption = fileCaption;
}
public File getUpload() {
return upload;
}
public void setUpload(File upload) {
this .upload = upload;
}
public String getUploadContentType() {
return uploadContentType;
}
public void setUploadContentType(String uploadContentType) {
this .uploadContentType = uploadContentType;
}
public String getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String uploadFileName) {
this .uploadFileName = uploadFileName;
}
public void setServletContext(ServletContext context) {
this .context = context;
}
}
3.页面
上传页面:upload.jsp
<%
@ page language = " java " contentType = " text/html; charset=GB2312 "
%>
<% @ taglib prefix = " s " uri = " /struts-tags " %>
< html >
< head >
< title > 文件上传示例 </ title >
< link href ="<s:url value=" /css/main.css" /> " rel="stylesheet"
type="text/css" />
</ head >
< body >
< s:actionerror />
< s:fielderror />
< s:form action ="doUpload" method ="POST" enctype ="multipart/form-data" >
< tr >
< td colspan ="2" >
< h1 >
文件上传示例
</ h1 >
</ td >
</ tr >
< s:file name ="upload" label ="上传的文件" />
< s:textfield name ="fileCaption" label ="备注" />
< s:submit value ="上 传" />
</ s:form >
</ body >
</ html >
<% @ taglib prefix = " s " uri = " /struts-tags " %>
< html >
< head >
< title > 文件上传示例 </ title >
< link href ="<s:url value=" /css/main.css" /> " rel="stylesheet"
type="text/css" />
</ head >
< body >
< s:actionerror />
< s:fielderror />
< s:form action ="doUpload" method ="POST" enctype ="multipart/form-data" >
< tr >
< td colspan ="2" >
< h1 >
文件上传示例
</ h1 >
</ td >
</ tr >
< s:file name ="upload" label ="上传的文件" />
< s:textfield name ="fileCaption" label ="备注" />
< s:submit value ="上 传" />
</ s:form >
</ body >
</ html >
上传成功页面:upload_success.jsp
<%
@ page language = " java " contentType = " text/html; charset=GB2312 "
%>
<% @ taglib prefix = " s " uri = " /struts-tags " %>
< html >
< head >
< title > 上传成功 </ title >
< link href ="<s:url value=" /css/main.css" /> " rel="stylesheet"
type="text/css" />
</ head >
< body >
< table class ="wwFormTable" >
< tr >
< td colspan ="2" >
< h1 >
上传成功
</ h1 >
</ td >
</ tr >
< tr >
< td class ="tdLabel" >
< label for ="doUpload_upload" class ="label" >
内容类型:
</ label >
</ td >
< td >
< s:property value ="uploadContentType" />
</ td >
</ tr >
< tr >
< td class ="tdLabel" >
< label for ="doUpload_upload" class ="label" >
文件路径:
</ label >
</ td >
< td >
< s:property value ="uploadFileName" />
</ td >
</ tr >
< tr >
< td class ="tdLabel" >
< label for ="doUpload_upload" class ="label" >
临时文件:
</ label >
</ td >
< td >
< s:property value ="upload" />
</ td >
</ tr >
< tr >
< td class ="tdLabel" >
< label for ="doUpload_upload" class ="label" >
备注:
</ label >
</ td >
< td >
< s:property value ="fileCaption" />
</ td >
</ tr >
</ table >
</ body >
</ html >
<% @ taglib prefix = " s " uri = " /struts-tags " %>
< html >
< head >
< title > 上传成功 </ title >
< link href ="<s:url value=" /css/main.css" /> " rel="stylesheet"
type="text/css" />
</ head >
< body >
< table class ="wwFormTable" >
< tr >
< td colspan ="2" >
< h1 >
上传成功
</ h1 >
</ td >
</ tr >
< tr >
< td class ="tdLabel" >
< label for ="doUpload_upload" class ="label" >
内容类型:
</ label >
</ td >
< td >
< s:property value ="uploadContentType" />
</ td >
</ tr >
< tr >
< td class ="tdLabel" >
< label for ="doUpload_upload" class ="label" >
文件路径:
</ label >
</ td >
< td >
< s:property value ="uploadFileName" />
</ td >
</ tr >
< tr >
< td class ="tdLabel" >
< label for ="doUpload_upload" class ="label" >
临时文件:
</ label >
</ td >
< td >
< s:property value ="upload" />
</ td >
</ tr >
< tr >
< td class ="tdLabel" >
< label for ="doUpload_upload" class ="label" >
备注:
</ label >
</ td >
< td >
< s:property value ="fileCaption" />
</ td >
</ tr >
</ table >
</ body >
</ html >
4.struts.xml
<?
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.devMode" value ="true" />
< constant name ="struts.i18n.encoding" value ="GB2312" />
< package name ="NG" namespace ="/" extends ="struts-default" >
< action name ="showUpload" >
< result > /upload.jsp </ result >
</ action >
< action name ="doUpload" class ="com.sterning.StrutsFileUpload" >
< result name ="input" > /upload.jsp </ result >
< result > /upload_success.jsp </ result >
</ action >
</ package >
</ struts >
<! 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.devMode" value ="true" />
< constant name ="struts.i18n.encoding" value ="GB2312" />
< package name ="NG" namespace ="/" extends ="struts-default" >
< action name ="showUpload" >
< result > /upload.jsp </ result >
</ action >
< action name ="doUpload" class ="com.sterning.StrutsFileUpload" >
< result name ="input" > /upload.jsp </ result >
< result > /upload_success.jsp </ result >
</ action >
</ package >
</ struts >
5.web.xml
<?
xml version="1.0" encoding="UTF-8"
?>
< web-app id ="WebApp_ID" version ="2.4"
xmlns ="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation ="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >
< display-name > customization </ display-name >
< filter >
< filter-name > struts-cleanup </ filter-name >
< filter-class >
org.apache.struts2.dispatcher.ActionContextCleanUp
</ filter-class >
</ filter >
< filter >
< filter-name > struts2 </ filter-name >
< filter-class >
org.apache.struts2.dispatcher.FilterDispatcher
</ filter-class >
</ filter >
< filter-mapping >
< filter-name > struts-cleanup </ filter-name >
< url-pattern > /* </ url-pattern >
</ filter-mapping >
< filter-mapping >
< filter-name > struts2 </ filter-name >
< url-pattern > /* </ url-pattern >
</ filter-mapping >
</ web-app >
< web-app id ="WebApp_ID" version ="2.4"
xmlns ="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation ="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >
< display-name > customization </ display-name >
< filter >
< filter-name > struts-cleanup </ filter-name >
< filter-class >
org.apache.struts2.dispatcher.ActionContextCleanUp
</ filter-class >
</ filter >
< filter >
< filter-name > struts2 </ filter-name >
< filter-class >
org.apache.struts2.dispatcher.FilterDispatcher
</ filter-class >
</ filter >
< filter-mapping >
< filter-name > struts-cleanup </ filter-name >
< url-pattern > /* </ url-pattern >
</ filter-mapping >
< filter-mapping >
< filter-name > struts2 </ filter-name >
< url-pattern > /* </ url-pattern >
</ filter-mapping >
</ web-app >