Form
package com.xxc.form;
import org.apache.struts.action.ActionForm;
import org.apache.struts.upload.FormFile;
@SuppressWarnings("serial")
public class FileUpLoadForm extends ActionForm {
private String fileName;
//这个类是struts用于封装上传的数据
private FormFile fromFile;
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public FormFile getFromFile() {
return fromFile;
}
public void setFromFile(FormFile fromFile) {
this.fromFile = fromFile;
}
}
Action
package com.xxc.action;
import java.io.File;
import java.io.FileOutputStream;
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.xxc.form.FileUpLoadForm;
public class FileAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
FileUpLoadForm fileUpLoadForm = (FileUpLoadForm)form;
FormFile fromFiel = fileUpLoadForm.getFromFile();
String fileName = fromFiel.getFileName();
String contentType = fromFiel.getContentType();
//获取绝对路径,由于Action里不能象servlet里直接获取getServletContext,但是这里可以获取ActionServlet,通过它来获取servletContext
String fileRealPath = getServlet().getServletContext().getRealPath("/UpFile");
FileOutputStream fos = new FileOutputStream(fileRealPath+File.separator+fileName);
fos.write(fromFiel.getFileData());
fos.close();
return mapping.findForward("success");
}
}
struts-config.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<form-beans>
<form-bean name="fileUpLoadForm" type="com.xxc.form.FileUpLoadForm"></form-bean>
</form-beans>
<action-mappings>
<action path="/upFileAction" name="fileUpLoadForm" type="com.xxc.action.FileAction">
<forward name="upScuess" path="/success.jsp"></forward>
</action>
</action-mappings>
</struts-config>