struts1.1 文件上传例子

来源:互联网 发布:巫师2加强版优化补丁 编辑:程序博客网 时间:2024/04/29 21:53

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>


原创粉丝点击