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;
}
}
<%@ 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>
<%@ 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>
<?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>
<?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>