Struts1.2实现单文件上传
jsp:
Struts-Config.xml:
web.xml:
package com.yourcompany.struts.form;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;
public
class
UpfileForm
extends
ActionForm
{
private FormFile file;
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
// TODO Auto-generated method stub
return null;
}
public void reset(ActionMapping mapping, HttpServletRequest request) {
// TODO Auto-generated method stub
}
public FormFile getFile() {
return file;
}
public void setFile(FormFile file) {
this.file = file;
}
}
UpfileAction.java:
package com.yourcompany.struts.action;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;
import com.yourcompany.struts.form.UpfileForm;
public
class
UpfileAction
extends
Action
{
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
UpfileForm upfileForm = (UpfileForm) form;
FormFile file = upfileForm.getFile();
FileOutputStream fileOutput;
try {
fileOutput = new FileOutputStream("d://" + file.getFileName());
fileOutput.write(file.getFileData());
fileOutput.flush();
fileOutput.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
} 当然对于Form我们也可以用动态的:
相应的在web.xml中的配置:
<%
@ page language="java" pageEncoding="GBK"
%>
<% @ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"
%>
<% @ taglib uri="http://struts.apache.org/tags-html" prefix="html"
%>
< html >
<
head
>
<
title
>
JSP for UpfileForm form
</
title
>
</
head
>
<
body
>
<
html:form
action
="/upfile"
enctype
="multipart/form-data"
>
file :
<
html:file
property
="file"
/><
html:errors
property
="file"
/><
br
/>
<
html:submit
value
="确定"
/>
</
html:form
>
</
body
>
</ html >
注意表单类型必须为:enctype="multipart/form-data".
<% @
<% @
< html >
</ html >
Struts-Config.xml:
<?
xml version="1.0" encoding="UTF-8"
?>
<! DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"
>
< struts-config >
<
data-sources
/>
<
form-beans
>
<
form-bean
name
="upfileForm"
type
="com.yourcompany.struts.form.UpfileForm"
/>
</
form-beans
>
<
global-exceptions
/>
<
global-forwards
/>
<
action-mappings
>
<
action
attribute
="upfileForm"
input
="/upfile.jsp"
name
="upfileForm"
path
="/upfile"
scope
="request"
type
="com.yourcompany.struts.action.UpfileAction"
/>
</
action-mappings
>
<
message-resources
parameter
="com.yourcompany.struts.ApplicationResources"
/>
</ struts-config >
<! DOCTYPE
< struts-config >
</ struts-config >
web.xml:
<?
xml version="1.0" encoding="UTF-8"
?>
< web-app
xmlns
="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
version
="2.4"
xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>
<
servlet
>
<
servlet-name
>
action
</
servlet-name
>
<
servlet-class
>
org.apache.struts.action.ActionServlet
</
servlet-class
>
<
init-param
>
<
param-name
>
config
</
param-name
>
<
param-value
>
/WEB-INF/struts-config.xml
</
param-value
>
</
init-param
>
<
init-param
>
<
param-name
>
debug
</
param-name
>
<
param-value
>
3
</
param-value
>
</
init-param
>
<
init-param
>
<
param-name
>
detail
</
param-name
>
<
param-value
>
3
</
param-value
>
</
init-param
>
<
load-on-startup
>
0
</
load-on-startup
>
</
servlet
>
<
servlet-mapping
>
<
servlet-name
>
action
</
servlet-name
>
<
url-pattern
>
*.do
</
url-pattern
>
</
servlet-mapping
>
<
welcome-file-list
>
<
welcome-file
>
index.jsp
</
welcome-file
>
</
welcome-file-list
>
</ web-app >
UpfileForm.java:
< web-app
</ web-app >
package
import
import
import
import
import
public
}
UpfileAction.java:
package
import
import
import
import
import
import
import
import
import
import
import
public
}
LazyValidatorForm uploadForm
=
(LazyValidatorForm) form;
然后FormFile可以直接 通过form得到:
FormFile formFile
=
uploadForm.get(
"
file
"
);
相应的在web.xml中的配置:
<
form
-
bean name
=
"
uploadForm
"
type
=
"
org.apache.struts.validator.LazyValidatorForm
"
/>