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

首頁 > 開發 > Java > 正文

JS+Struts2多文件上傳實例詳解

2024-07-14 08:42:11
字體:
來源:轉載
供稿:網友

本文實例為大家分享了JS Struts2多文件上傳的具體代碼,供大家參考,具體內容如下

1、JSP頁面: 

JS控制增加刪除多個上傳文件框,代碼如下: 

<%@ page language="java" pageEncoding="UTF-8"%>  <%@ taglib prefix="s" uri="/struts-tags"%>   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  <html xmlns="http://www.w3.org/1999/xhtml">    <head>      <%@include file="../../_head.html"%>      <title>文件上傳</title>      <meta http-equiv="pragma" content="no-cache">      <meta http-equiv="cache-control" content="no-cache">      <meta http-equiv="expires" content="0">      <script language="javascript" type="text/javascript"       src="../js/common/common.js"></script>      <script type="text/javascript">                 var pos = 1;               function addFileComponent() {          var elTable = document.getElementById('uploadTable').getElementsByTagName('tbody')[0];          var elTr = document.getElementById('fileTr');          var elTr2 = document.getElementById('op');          var newEleTr = elTr.cloneNode(true);          newEleTr.id = "fileTr" + pos;             newEleTr.style.display = "";          inputs = newEleTr.getElementsByTagName('input');          inputs[0].id="file" + pos;          var elInput = inputs[1];          elInput.onclick=delFileComponent;          elInput.id="delbutton" + pos++;          elTable.insertBefore(newEleTr, elTr2);         }         function delFileComponent() {          var elTable = document.getElementById('uploadTable').getElementsByTagName('tbody')[0];          var trArr = elTable.getElementsByTagName("tr");          var el = event.srcElement;          for(j = 0; j < trArr.length; j++) {            tr = trArr[j];            if(tr.getElementsByTagName("input")[1] == el) {              elTable.removeChild(tr);              pos--;              break;            }          }        }                function isValidateFile(obj){          var extend = obj.value.substring(obj.value.lastIndexOf(".")+1);          if(extend==""){          }else{            if(!(extend=="xls"||extend=="doc")){             alert("請上傳后綴名為xls或doc的文件!");             var nf = obj.cloneNode(true);             nf.value='';             obj.parentNode.replaceChild(nf, obj);             return false;            }          }          return true;        }      </script>    </head>    <body>      <%@ include file="/common/message.jsp"%>      <div class="body-box">        <div class="rhead">          <div class="rpos">            文件上傳(可同時上傳多份文件)          </div>          <div class="clear"></div>        </div>        <s:form id="ops" action="csc_mUploadFile" theme="simple"         cssClass="rhead" enctype = "multipart/form-data">          <table id="uploadTable" width="100%" border="0">            <tr>              <td>                <input type="file" id="file0" name="uploadFile" size="50"                 onchange="isValidateFile(this);" />              </td>            </tr>            <tr id="fileTr" style="display: none;">              <td>                <input type="file" size="50" name="uploadFile"                 onchange="isValidateFile(this);" />                                 <input type="button" value="刪除" />              </td>            </tr>            <tr id="op">              <td>                <input type="submit" id="uploadbutton" value="上傳" />                                 <input type="button" value="添加" id="addbutton"                 onClick="addFileComponent();" />                               </td>            </tr>          </table>        </s:form>        <table class="pn-ltable" width="100%" cellspacing="1" cellpadding="0"         border="0">          <thead class="pn-lthead">            <tr>              <th>                序號              </th>              <th>                文件名              </th>              <th>                上傳時間              </th>            </tr>          </thead>          <tbody class="pn-ltbody">            <tr onmouseover="Pn.LTable.lineOver(this);"             onmouseout="Pn.LTable.lineOut(this);"             onclick="Pn.LTable.lineSelect(this);">              <td>              </td>              <td>              </td>              <td>              </td>            </tr>          </tbody>        </table>      </div>    </body>  </html> 

2、Action后臺處理上傳文件: 

 

//uploadFile對應頁面<input type="file" name="uploadFile"> private List<File> uploadFile;  //文件名對應uploadFile+“FileName”,要不獲取不到文件名 private List<String> uploadFileFileName;   // 文件上傳  public String mUploadFile() {    if (null == uploadFile) {    this.addActionError("請上傳文件!");    } else {    String fileName = "";     try {             //在自己代碼中控制文件上傳的服務器目錄      String directory = ServletActionContext.getServletContext().getRealPath("/uploads");             //判斷該目錄是否存在,不存在則創建            FileUtil.makeDir(directory);             //循環處理上傳的文件       for(int i=0,j=uploadFile.size();i<j;i++){          fileName = uploadFileFileName.get(i);          String filePath = directory + File.separator + fileName;          FileUtil.uploadFile(uploadFile.get(i), new File(filePath));        }      } catch (IOException e) {          this.addActionMessage("");      }        this.addActionMessage("文件上傳成功!");    }    return "fileUpload";  }

FileUtil代碼如下: 

public class FileUtil {  private static final int BUFFER_SIZE = 16 * 1024;  public static void uploadFile(File src, File dst) throws IOException {  InputStream in = null; OutputStream out = null; try {  in = new BufferedInputStream(new FileInputStream(src), BUFFER_SIZE);  out = new BufferedOutputStream(new FileOutputStream(dst),   BUFFER_SIZE);  byte[] buffer = new byte[BUFFER_SIZE];  while (in.read(buffer) > 0) {  out.write(buffer);  } } finally {  if (null != in) {  in.close();  }  if (null != out) {  out.close();  } }  }  public static String getExtention(String fileName) { int pos = fileName.lastIndexOf("."); return fileName.substring(pos); }  public static void makeDir(String directory) { File dir = new File(directory);  if (!dir.isDirectory()) {  dir.mkdirs(); }  }  public static String generateFileName(String fileName)  throws UnsupportedEncodingException { DateFormat format = new SimpleDateFormat("yyMMddHHmmss"); String formatDate = format.format(new Date()); String extension = fileName.substring(fileName.lastIndexOf(".")); fileName = new String(fileName.getBytes("iso8859-1"), "gb2312"); return fileName + "_" + formatDate + new Random().nextInt(10000)  + extension; } }

擴展: 

1.可以實現帶進度條的上傳與下載; 
2.可以用xml文件記錄上傳的文件清單,并且可以根據頁面對上傳文件的操作來修改相應的xml文件;

完畢!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
68精品国产免费久久久久久婷婷| 一区国产精品视频| 久久中文字幕一区| 亚洲一区二区三区香蕉| 国内精品视频一区| 亚洲精品小视频在线观看| 欧美激情视频一区二区三区不卡| 精品久久久久久久久中文字幕| 日韩中文字幕免费| 正在播放欧美视频| 亚洲国产精品va在线看黑人| 欧美最猛性xxxxx亚洲精品| 97国产精品视频人人做人人爱| 国产亚洲视频在线观看| 久久久精品免费| 精品亚洲一区二区三区在线观看| 国产日韩欧美黄色| 久久久精品电影| 在线精品播放av| 精品成人乱色一区二区| 日韩欧美在线免费| 日本三级久久久| 日韩激情在线视频| 精品久久久久久电影| 亚洲精品国产欧美| 亚洲欧美日韩图片| 国产欧美亚洲视频| 久久久精品一区二区三区| 福利视频导航一区| 亚洲人精选亚洲人成在线| 日韩av免费在线看| 亚洲成人黄色网址| 欧美日韩一区二区三区在线免费观看| 欧美一乱一性一交一视频| 久久久精品亚洲| 搡老女人一区二区三区视频tv| 亚洲人a成www在线影院| 欧美日韩电影在线观看| 精品高清一区二区三区| 久久男人av资源网站| 国产精品狼人色视频一区| 欧美精品亚州精品| 欧美性一区二区三区| 91禁国产网站| 懂色av影视一区二区三区| 91久久精品视频| 亚洲一区二区少妇| 国产精品视频男人的天堂| 欧美激情免费视频| 久久中文精品视频| 俺也去精品视频在线观看| 亚州欧美日韩中文视频| 亚洲最新视频在线| 久久免费观看视频| 国产精品最新在线观看| 亚洲日本欧美中文幕| 亚洲第一av在线| 中文字幕在线观看亚洲| 中文字幕国产精品久久| 久久精品国产清自在天天线| 亚洲欧美国产va在线影院| 国产精品高清在线| 6080yy精品一区二区三区| 国产成人在线播放| 欧美日韩成人黄色| 国产精品视频一区二区高潮| 欧美激情xxxxx| 欧美成人午夜激情| 性欧美xxxx交| 精品动漫一区二区三区| 蜜月aⅴ免费一区二区三区| 精品视频久久久久久| 亚洲片在线观看| 粉嫩av一区二区三区免费野| 日本久久中文字幕| 国产精品久久久av久久久| 国产精品嫩草视频| 黄色91在线观看| 亚洲a成v人在线观看| 国产精品福利观看| 国产aⅴ夜夜欢一区二区三区| 亚洲第一色中文字幕| 亚洲人成网站在线播| 这里只有精品在线观看| 日本韩国欧美精品大片卡二| 91黑丝在线观看| 亚洲乱码一区av黑人高潮| 欧美日韩国产一区二区三区| 欧美丰满少妇xxxx| 欧美精品久久久久久久久久| 日韩精品欧美国产精品忘忧草| 最近更新的2019中文字幕| 日韩中文第一页| 国产小视频91| 亚洲天天在线日亚洲洲精| 国产亚洲精品久久久久久牛牛| 伊人男人综合视频网| 中文字幕在线看视频国产欧美在线看完整| 欧美成人自拍视频| 亚洲视频自拍偷拍| 国产精品海角社区在线观看| 久久乐国产精品| 欧美在线中文字幕| 国产欧美精品一区二区三区介绍| 91精品在线国产| 亚洲日本成人女熟在线观看| 国产日本欧美视频| 亚洲视频在线观看网站| 日韩高清免费在线| 国产欧美日韩专区发布| 91沈先生在线观看| 精品国产91久久久久久老师| 色www亚洲国产张柏芝| 亚洲人成五月天| 最近2019中文字幕大全第二页| 欧美日韩久久久久| 色狠狠久久aa北条麻妃| 韩国国内大量揄拍精品视频| 97成人精品区在线播放| 国产亚洲人成网站在线观看| 色偷偷噜噜噜亚洲男人的天堂| 国产精品av在线播放| 一本一道久久a久久精品逆3p| 国产精品视频免费在线观看| 91免费人成网站在线观看18| 亚洲午夜国产成人av电影男同| 中文字幕亚洲综合久久| 欧美成在线视频| 日本久久久a级免费| 91麻豆桃色免费看| 欧美视频不卡中文| 亚洲免费视频网站| 少妇久久久久久| 欧美日韩第一视频| 欧美黑人巨大精品一区二区| 精品久久久久久中文字幕大豆网| 国产亚洲精品久久久久久牛牛| 久久久国产视频| 欧美性极品少妇精品网站| 亚洲国产精品成人va在线观看| 久久99久久久久久久噜噜| 欧美日韩国产一区二区| 在线丨暗呦小u女国产精品| 亚洲网站在线看| 国产视频久久久久久久| 亚洲欧美激情视频| 久久国产精品久久精品| 国产专区精品视频| 国产精品久久久久久久av大片| 成人免费在线视频网址| 黄色91在线观看| 韩国欧美亚洲国产| 日韩精品黄色网| 成人在线中文字幕| 国产精品aaaa| 国产伊人精品在线| 亚洲国产天堂久久综合网| 91精品国产色综合| 热99精品里视频精品| 亚洲精品美女免费| 国产精品成人播放| 成人免费观看网址| 亚洲欧洲偷拍精品| 欧美激情一二三|