UpLoadForm .java:
package com.wangwang.struts.form;
import org.apache.struts.action.ActionForm;
import org.apache.struts.upload.FormFile;
public class UpLoadForm extends ActionForm {
private FormFile file;
private String fname;
private String size;
public FormFile getFile() {
return file;
}
public void setFile(FormFile file) {
this.file = file;
}
public String getFname() {
return fname;
}
public void setFname(String fname) {
this.fname = fname;
}
public String getSize() {
return size;
}
public void setSize(String size) {
this.size = size;
}
}
UpLoadAction.java:
package com.wangwang.struts.action;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
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.wangwang.struts.form.UpLoadForm;
public class UpLoadAction extends Action {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
String dir = servlet.getServletContext().getRealPath("/upload");
UpLoadForm hff =(UpLoadForm)form;
FormFile file = hff.getFile();
//如果没有文件被上传,将直接显示视图页面
if(file==null){
return mapping.findForward("success");
}
//获取上传文件的名称和大小
String fname = file.getFileName();
String size = Integer.toString(file.getFileSize()) + " bytes ";
InputStream streamIn = file.getInputStream();
OutputStream streamOut = new FileOutputStream(dir + "/" + fname);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while((bytesRead = streamIn.read(buffer,0,8192))!=-1){
streamOut.write(buffer, 0, bytesRead);
}
streamOut.close();
streamIn.close();
//将获取的上传文件信息显示到页面上
hff.setFname(fname);
hff.setSize(size);
//销毁FormFile对象
file.destroy();
return mapping.findForward("success");
}
}
display.jsp:
<%@ page language="java" import="java.util.*" contentType="text/html; charset=GBK"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<html>
<head>
</head>
<body>
<html:form action="upLoad.do" enctype="multipart/form-data">
Please select the file that you would like to upload:<br/>
<html:file property="file"/>
<html:submit/>
</html:form>
<logic:notEmpty name="UpLoadForm" property="fname">
<p>
The file just upload was:</p>
<ul>
<li>Name=<bean:write name="UpLoadForm" property="fname" /></li>
<li>Size=<bean:write name="UpLoadForm" property="size" /></li>
</ul>
</logic:notEmpty>
</body>
</html>
struts-config.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<data-sources />
<form-beans>
<form-bean name="UpLoadForm" type="com.wangwang.struts.form.UpLoadForm"></form-bean>
</form-beans>
<global-exceptions />
<global-forwards>
<forward name="Htmlfile" path="/display.jsp"></forward>
</global-forwards>
<action-mappings>
<action path="/upLoad" type="com.wangwang.struts.action.UpLoadAction"
name="UpLoadForm" scope="session" input="/display.jsp" validate="false">
<forward name="success" path="/display.jsp"></forward>
</action>
</action-mappings>
<controller maxFileSize="2M" inputForward="true"/>
<message-resources parameter="com.wangwang.struts.ApplicationResources" />
</struts-config>