java代码:
package com.struts1.form; import org.apache.struts.action.ActionForm; import org.apache.struts.upload.FormFile; public class UploadFileForm extends ActionForm { private static final long serialVersionUID = 1L; private FormFile formFile; public FormFile getFormFile() { return formFile; } public void setFormFile(FormFile formFile) { this.formFile = formFile; } }
package com.struts1.action; import java.io.FileOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.io.IOUtils; 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.struts1.form.UploadFileForm; public class UploadAction extends Action { @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { UploadFileForm uploadFileForm = (UploadFileForm)form; FormFile formFile = uploadFileForm.getFormFile(); if (formFile == null) { return mapping.findForward("uploadError"); } String formFileName = formFile.getFileName(); int pos = formFileName.lastIndexOf("."); String fileName = "c:\\"; if (pos != -1) { fileName = fileName + formFileName.substring(0, pos) + System.currentTimeMillis() + formFileName.substring(pos); } else { fileName = fileName + formFileName + System.currentTimeMillis(); } FileOutputStream fos = null; try { fos = new FileOutputStream(fileName); IOUtils.copy(formFile.getInputStream(), fos); } catch (Exception e) { e.printStackTrace(); } finally { IOUtils.closeQuietly(formFile.getInputStream()); IOUtils.closeQuietly(fos); } return mapping.findForward("success"); } }
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %> <%@ taglib uri="http://struts.apache.org/tags-nested" prefix="nested" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GBK"> <title>Insert title here</title> </head> <body> <html:form action="uploadFile.do" enctype="multipart/form-data" method="post"> <html:file property="formFile"></html:file><br> <html:submit /> </html:form> </body> </html>
注意:
enctype="multipart/form-data"
method="post"
struts配置文件:
<?xml version="1.0" encoding="ISO-8859-1" ?> <!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="uploadFileForm" type="com.struts1.form.UploadFileForm" /> </form-beans> <global-exceptions> </global-exceptions> <global-forwards> </global-forwards> <action-mappings> <action path="/uploadFile" type="com.struts1.action.UploadAction" name="uploadFileForm" scope="request" validate="false" input="/index.jsp"> <forward name="success" path="/success.jsp" /> <forward name="uploadError" path="/uploadError.jsp" /> </action> </action-mappings> <controller maxFileSize="1M" /> </struts-config>