国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

分享:用Struts上傳多個(gè)文件的方法

2019-11-18 12:54:36
字體:
供稿:網(wǎng)友

  最近在做Struts項(xiàng)目時(shí)碰到了上傳多個(gè)文件的問題。在網(wǎng)上查了不少資料,也沒有找到用Struts上傳多個(gè)文件的例子。我經(jīng)過幾天的研究,實(shí)現(xiàn)了用Struts上傳多個(gè)文件的功能。現(xiàn)在貼出來讓大家共享!
  
  一。建立ActionForm
  
  package com.cnehu.struts.form;
  
  import javax.servlet.http.HttpServletRequest;
  
  import org.apache.struts.action.ActionError;
  
  import org.apache.struts.action.ActionErrors;
  
  import org.apache.struts.action.ActionForm;
  
  import org.apache.struts.action.ActionMapping;
  
  import org.apache.struts.upload.FormFile;
  
  import org.apache.struts.upload.MultipartRequestHandler;
  
  /**
  
  * <p>
  
  * Title:UpLoadForm
  
  * </p>
  
  * <p>
  
  * Copyright: Copyright (c) 2005 techyang http://blog.csdn.net/techyang
  
  * </p>
  
  * @author techyang
  
  * @version 1.0
  
  */
  
  public class UpLoadForm extends ActionForm
  
  {
  
  public static final String ERROR_PROPERTY_MAX_LENGTH_EXCEEDED = "org.apache.struts.webapp.upload.MaxLengthExceeded";
  
  protected FormFile theFile;
  
  protected FormFile theFile2;
  
  public FormFile getTheFile()
  
  {
  
  return theFile;
  
  }
  
  public void setTheFile(FormFile theFile)
  
  {
  
  this.theFile = theFile;
  
  }
  
  public ActionErrors validate(ActionMapping mapping,
  
  HttpServletRequest request)
  
  {
  
  ActionErrors errors = null;
  
  //has the maximum length been exceeded?
  
  Boolean maxLengthExceeded = (Boolean) request
  
  .getAttribute(MultipartRequestHandler.ATTRIBUTE_MAX_LENGTH_EXCEEDED);
  
  if ((maxLengthExceeded != null) && (maxLengthExceeded.booleanValue()))
  
  {
  
  errors = new ActionErrors();
  
  errors.add(ERROR_PROPERTY_MAX_LENGTH_EXCEEDED, new ActionError(
  
  "maxLengthExceeded"));
  
  }
  
  return errors;
  
  }
  
  /**
  
  * @return Returns the theFile2.
  
  */
  
  public FormFile getTheFile2()
  
  {
  
  return theFile2;
  
  }
  
  /**
  
  * @param theFile2 The theFile2 to set.
  
  */
  
  public void setTheFile2(FormFile theFile2)
  
  {
  
  this.theFile2 = theFile2;
  
  }
  
  }
  
  二。建立ActionServlet
  
  package com.cnehu.struts.action;
  
  import java.io.*;
  
  import javax.servlet.http.*;
  
  import org.apache.struts.action.*;
  
  import org.apache.struts.upload.FormFile;
  
  import com.cnehu.struts.form.UpLoadForm;
  
  /**
  
  * <p>
  
  * Title:UpLoadAction
  
  * </p>
  
  * <p>
  
  * Copyright: Copyright (c) 2005 techyang http://blog.csdn.net/techyang
  
  * </p>
  
  * @author techyang
  
  * @version 1.0
  
  */
  
  public class UpLoadAction extends Action
  
  {
  
  public ActionForward execute(ActionMapping mapping, ActionForm form,
  
  HttpServletRequest request, HttpServletResponse response)
  
  throws Exception
  
  {
  
  String encoding = request.getCharacterEncoding();
  
  if ((encoding != null) && (encoding.equalsIgnoreCase("utf-8")))
  
  {
  
  response.setContentType("text/Html; charset=gb2312");//假如沒有指定編碼,編碼格式為gb2312
  
  }
  
  UpLoadForm theForm = (UpLoadForm) form;
  
  FormFile file = theForm.getTheFile();//取得上傳的文件
  
  FormFile file2=theForm.getTheFile2();
  
  try
  
  {
  
  /*
  
  * 取當(dāng)前系統(tǒng)路徑D:/Tomcat5/webapps/coka/ 其中coka 為當(dāng)前context
  
  */
  
  String filePath = this.getServlet().getServletContext()
  
  .getRealPath("/");
  
  InputStream stream = file.getInputStream();//把文件讀入
  
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  
  /*
  
  * 建立一個(gè)上傳文件的輸出流 假如是linux系統(tǒng)請(qǐng)把UploadFiles后的"http://"換成"/"
  
  */
  
  OutputStream bos = new FileOutputStream(filePath +
  
  "UploadFiles//"+file.getFileName());
  
  //D:/Tomcat5/webapps/coka/UploadFiles/DSC01508.JPG
  
  /* System.out.println(filePath +
  
  "UploadFiles//"+file.getFileName());
  
  System.out.println(filePath);*/
  
  request.setAttribute("fileName",filePath + "/"
  
  + file.getFileName());
  
  int bytesRead = 0;
  
  byte[] buffer = new byte[8192];
  
  while ((bytesRead = stream.read(buffer, 0, 8192)) != -1)
  
  {
  
  bos.write(buffer, 0, bytesRead);//將文件寫入服務(wù)器
  
  }
  
  bos.close();
  
  stream.close();
  
  InputStream stream2 = file2.getInputStream();//把文件讀入
  
  ByteArrayOutputStream baos2 = new ByteArrayOutputStream();
  
  OutputStream bos2 = new FileOutputStream(filePath +
  
  "UploadFiles//"+file2.getFileName());//建立一個(gè)上傳文件的輸出流
  
  int bytesRead2 = 0;
  
  byte[] buffer2 = new byte[8192];
  
  int i=0;
  
  while ((bytesRead2 = stream2.read(buffer2, 0, 8192)) != -1)
  
  {
  
  bos2.write(buffer2, 0, bytesRead2);//將文件寫入服務(wù)器
  
  }
  
  bos2.close();
  
  stream2.close();
  
  } catch (Exception e)
  
  {
  
  System.err.print(e);
  
  }
  
  return mapping.findForward("display");
  
  }
  
  }
  
  三。建立上傳用的jsp文件 upload.jsp
  
  <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
  
  <html:html>
  
  <head>
  
  <title>用Struts上傳文件</title>
  
  </head>
  
  <body>
  
  <html:form action="/uploadsAction" enctype="multipart/form-data">
  
  <html:file property="theFile"/>
  
  <html:file property="theFile2"/>
  
  <html:submit/>
  
  </html:form>
  
  </body>
  
  </html: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="uploadsForm" type="com.cnehu.struts.form.UpLoadForm" />
  
  </form-beans>
  
  <global-exceptions />
  
  <global-forwards >
  
  </global-forwards>
  
  <action-mappings >
  
  <action name="uploadsForm" type="com.cnehu.struts.action.UpLoadAction" path="/uploadsAction">
  
  <forward name="display" path="/display.jsp" />
  
  </action>
  
  </action-mappings>
  
  </struts-config>

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 黔西县| 乌拉特前旗| 淮安市| 淮南市| 武定县| 六安市| 深水埗区| 旺苍县| 松潘县| 苏州市| 雷州市| 屏边| 桦南县| 罗甸县| 涟源市| 兖州市| 寿宁县| 铜山县| 射洪县| 滦平县| 湛江市| 莎车县| 南安市| 库车县| 宁都县| 孝昌县| 马公市| 江山市| 雷波县| 蓬安县| 甘谷县| 长兴县| 沙坪坝区| 石楼县| 汶上县| 夏河县| 大渡口区| 平陆县| 彭州市| 安远县| 筠连县|