工具: myeclipse 6.5
1. 新建项目 StrutsFileUpload
导入 struts1.x 的属性包:
在 struts-config.xml 里面新建一个 action 和 form 为 fileupload
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.shiryu.form.FileuploadForm" />
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings >
<action
attribute="fileuploadForm"
input="/fileupload.jsp"
name="fileuploadForm"
path="/fileupload"
scope="request"
type="com.shiryu.action.FileuploadAction">
<forward name="index" path="/index.jsp" />
</action>
</action-mappings>
<message-resources parameter="com.shiryu.ApplicationResources" />
</struts-config>
2.com.shiryu.action 包下的 FileuploadAction.java
package com.shiryu.action;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
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.shiryu.form.FileuploadForm;
public class FileuploadAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
FileuploadForm fileuploadForm = (FileuploadForm) form;
FormFile upfile=fileuploadForm.getFilecontext();
// 文件上传功能实现
try {
byte[] buf=upfile.getFileData();
OutputStream out=new FileOutputStream(new File("d://"+fileuploadForm.getFilecontext().toString()));
out.write(buf);
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return mapping.findForward("index");
}
}
3.com.shiryu.form 包下的 FileuploadForm.java
package com.shiryu.form;
import org.apache.struts.action.ActionForm;
import org.apache.struts.upload.FormFile;
public class FileuploadForm extends ActionForm {
private static final long serialVersionUID = 5572854553277148095L;
// 类型是 FormFile
private FormFile filecontext;
private String filename;
public FormFile getFilecontext() {
return filecontext;
}
public String getFilename() {
return filename;
}
public void setFilename(String filename) {
this.filename = filename;
}
public void setFilecontext(FormFile filecontext) {
this.filecontext = filecontext;
}
}
fileUpload.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ 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 FileuploadForm</title>
</head>
<body>
<html:form action="/fileupload" enctype="multipart/form-data">
filename : <html:text property="filename"/><html:errors property="filename"/><br/>
filecontext : <html:file property="filecontext"/><html:errors property="filecontext"/><br/>
<html:submit/><html:cancel/>
</html:form>
</body>
</html>