【Struts輕鬆搞定多文件上傳】

在前面的《Apache Commons FileUpload實現多文件上傳》文章中介紹了使用第三方組件ApacheCommons FileUpload來實現多文件的上傳,對比今天用struts實現的多文件上傳,總以爲仍是struts用起來更加順手,也更加簡潔方便,不忍本身獨享,因此拿出來跟你們一塊分享一下。若是你讀過前面提到的那篇文章,相信再理解本文將會更加容易,另外提供源碼以方便你們學習。因爲本文屬於一片純技術文章,廢話就很少說了,下面看一下struts是如何實現多文件上傳的吧。javascript

  1.首先來看前臺。在前臺頁面中經過js實現上傳控件的添加和刪除。描述的詳細一些就是點一下「增長一行」按鈕就會增長一個上傳控件,一樣點擊該控件後邊的「刪除」則會將該上傳控件去除。目的在於用js實現添加任意數目的文件的功能。html

  [html]java

  <span style="font-family:Microsoft YaHei;font-size:14px;"><%@ page language="java" pageEncoding="GB18030"%>apache

  <%@ taglib uri="struts.apache.org/tags-html" prefix="html" %>post

  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">學習

  <html>this

  <head>spa

  <title>multiUploadDemo</title>orm

  <script type="text/javascript" src="js/myjs.js">htm

  </script>

  </head>

  <body bgcolor="#ffffff">

  <div id="status"></div>

  <form method="post" action="upload.do" enctype="multipart/form-data" >

  <table id="tb"></table>

  <input type="button" name="AddOnLine" value="增長一行" onclick="additem('tb')"/>

  <input type="submit" name="btnUpload" value="上傳" onclick="upload()"/>

  </form>

  </body>

  </html>

  </span>

  在前臺頁面中引用的js文件中的代碼以下:

  [javascript]

  <span style="font-family:Microsoft YaHei;font-size:14px;"> var num = 0;

  function upload(){

  document.getElementById("status").innerHTML = "文件上傳中...";

  }

  function additem(id)

  {

  var row,cell,str;

  row = eval("document.all["+'"'+id+'"'+"]").insertRow();

  if(row != null )

  {

  cell = row.insertCell();

  str="<input type="+'"'+"file"+'"'+" name=uploadFile["+ num +"].file><input type="+'"'+"button"+'"'+" value="+'"'+"刪除"+'"'+" onclick='deleteitem(this,"+'"'+"tb"+'"'+");'>"

  cell.innerHTML=str;

  }

  num++;

  }

  function deleteitem(obj,id)

  {

  var rowNum,curRow;

  curRow = obj.parentNode.parentNode;

  rowNum = eval("document.all."+id).rows.length - 1;

  eval("document.all["+'"'+id+'"'+"]").deleteRow(curRow.rowIndex);

  }

  function callback(msg)

  {

  document.getElementById("status").innerHTML = "文件上傳完成...<br>" + msg;

  }</span>

相關文章
相關標籤/搜索