亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

分享:用Struts上傳多個文件的方法

2019-11-18 12:54:36
字體:
來源:轉載
供稿:網友

  最近在做Struts項目時碰到了上傳多個文件的問題。在網上查了不少資料,也沒有找到用Struts上傳多個文件的例子。我經過幾天的研究,實現了用Struts上傳多個文件的功能?,F在貼出來讓大家共享!
  
  一。建立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:/Tomcat5/webapps/coka/ 其中coka 為當前context
  
  */
  
  String filePath = this.getServlet().getServletContext()
  
  .getRealPath("/");
  
  InputStream stream = file.getInputStream();//把文件讀入
  
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  
  /*
  
  * 建立一個上傳文件的輸出流 假如是linux系統請把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);//將文件寫入服務器
  
  }
  
  bos.close();
  
  stream.close();
  
  InputStream stream2 = file2.getInputStream();//把文件讀入
  
  ByteArrayOutputStream baos2 = new ByteArrayOutputStream();
  
  OutputStream bos2 = new FileOutputStream(filePath +
  
  "UploadFiles//"+file2.getFileName());//建立一個上傳文件的輸出流
  
  int bytesRead2 = 0;
  
  byte[] buffer2 = new byte[8192];
  
  int i=0;
  
  while ((bytesRead2 = stream2.read(buffer2, 0, 8192)) != -1)
  
  {
  
  bos2.write(buffer2, 0, bytesRead2);//將文件寫入服務器
  
  }
  
  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>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕国产精品| 日韩美女av在线| 91沈先生作品| 欧洲亚洲妇女av| 亚洲成人久久久| 秋霞成人午夜鲁丝一区二区三区| 久久网福利资源网站| 国产精品网站大全| 精品久久中文字幕| 久久久视频免费观看| 久久久久久久爱| 911国产网站尤物在线观看| 日韩av色综合| 成人激情视频在线观看| 日日狠狠久久偷偷四色综合免费| 国产精品福利网站| 亚洲色图日韩av| 欧美精品videossex性护士| 国产成人avxxxxx在线看| 欧美视频免费在线观看| 国产精品第一区| 亚洲精品视频中文字幕| 欧美日韩国产精品一区| 在线日韩日本国产亚洲| 国产精品视频公开费视频| 精品久久久久久久久久久久| 中文字幕欧美日韩精品| 中文字幕在线成人| 日本欧美黄网站| 中文字幕日韩欧美| 在线精品视频视频中文字幕| 国产精品网站大全| 久久久精品国产一区二区| 午夜精品在线观看| 国产精品欧美日韩| 神马久久久久久| 国产婷婷色综合av蜜臀av| 欧美成人合集magnet| 欧美国产一区二区三区| 欧美大人香蕉在线| 亚洲人成亚洲人成在线观看| 欧美在线视频免费| 亚洲成人av在线播放| 久久久人成影片一区二区三区观看| 91在线免费网站| 欧美自拍大量在线观看| 亚洲乱码国产乱码精品精天堂| 国产精品国产福利国产秒拍| 久久久999国产精品| 亚洲精品视频免费在线观看| 久久久久久久久久久亚洲| 国产精品久久一区| 国产一区二区三区欧美| 久青草国产97香蕉在线视频| 这里只有视频精品| 日本精品一区二区三区在线播放视频| 亚洲精品自拍偷拍| 欧美华人在线视频| 91成人免费观看网站| 18一19gay欧美视频网站| 亚洲国产精品高清久久久| 久久精品国产免费观看| 日韩在线不卡视频| 91高潮精品免费porn| 九九精品在线观看| 亚洲国产精品一区二区久| 欧美久久精品一级黑人c片| 9.1国产丝袜在线观看| 欧美国产亚洲视频| 成人性教育视频在线观看| 高跟丝袜一区二区三区| 欧美激情网站在线观看| 国产偷亚洲偷欧美偷精品| 欧美精品www| 国产专区精品视频| 亚洲最大的免费| 国产性猛交xxxx免费看久久| 午夜精品一区二区三区在线播放| 国产精品久久久久国产a级| 久久资源免费视频| 日韩欧美在线看| 欧美在线观看一区二区三区| 亚洲无限乱码一二三四麻| 欧美黑人一级爽快片淫片高清| 伊人伊成久久人综合网站| 日韩精品视频观看| 国产精品久久一区| 最近2019中文字幕大全第二页| 成人亚洲欧美一区二区三区| 欧美午夜宅男影院在线观看| 97人人模人人爽人人喊中文字| 欧美与黑人午夜性猛交久久久| 午夜精品久久久久久久久久久久| 久久久久五月天| 国产精品免费视频久久久| 高清一区二区三区四区五区| 992tv成人免费影院| 精品国产一区二区三区久久久| 91九色视频导航| 精品国产一区久久久| 久久久最新网址| 国产精品成人一区| 欧美尤物巨大精品爽| 96精品久久久久中文字幕| 97精品国产97久久久久久免费| 国产精品7m视频| 成人性生交大片免费看视频直播| 欧美成人国产va精品日本一级| 国产视频精品一区二区三区| 亚洲自拍偷拍网址| 欧美日韩精品在线观看| 久久国产精品久久久久久久久久| 91精品久久久久久久久| 欧美黑人巨大精品一区二区| 欧美一级免费视频| 亚洲精品中文字幕av| 国内精品久久久久伊人av| 色综合久久88色综合天天看泰| 日本精品免费一区二区三区| 九九九久久国产免费| 91黑丝在线观看| 国产99在线|中文| 国产成人免费av| 蜜月aⅴ免费一区二区三区| 成人啪啪免费看| 国产精品av在线| 69久久夜色精品国产7777| 欧美午夜片在线免费观看| 国产在线播放不卡| 国产精品高精视频免费| 亚洲视频在线免费看| 亚洲a中文字幕| 日日骚久久av| 亚洲欧洲日韩国产| 欧美在线视频在线播放完整版免费观看| 久久久久久久久久亚洲| 欧美性xxxxx极品娇小| 欧美电影免费看| 亚洲深夜福利在线| 久久久久久午夜| 亚洲嫩模很污视频| 2019av中文字幕| 91在线视频成人| 国产精品美乳在线观看| 国产亚洲成av人片在线观看桃| 成人美女免费网站视频| 欧美大片在线免费观看| 亚洲精品自在久久| 精品亚洲va在线va天堂资源站| 国产亚洲福利一区| 欧美贵妇videos办公室| 欧美日韩性生活视频| 亚洲综合精品一区二区| 欧美亚洲另类制服自拍| 国产精品69精品一区二区三区| 成人激情黄色网| 中文字幕日韩专区| 国产一区二区三区视频在线观看| 日韩欧美国产一区二区| 岛国精品视频在线播放| 国产欧美一区二区三区四区| 亚洲国产精品成人精品| 精品美女国产在线| 欧美另类在线播放|