真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ajaxFileupload如何實(shí)現(xiàn)多文件上傳功能

這篇文章將為大家詳細(xì)講解有關(guān)ajaxFileupload如何實(shí)現(xiàn)多文件上傳功能,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站制作、成都網(wǎng)站制作、庫(kù)車網(wǎng)絡(luò)推廣、微信平臺(tái)小程序開(kāi)發(fā)、庫(kù)車網(wǎng)絡(luò)營(yíng)銷、庫(kù)車企業(yè)策劃、庫(kù)車品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供庫(kù)車建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com

打開(kāi)google 搜索"ajaxFileupload' ‘多文件上傳"可以搜到許許多多類似的,那我為什么還要寫一下呢?
一個(gè)是對(duì)之前大神的貢獻(xiàn)表示感謝;二個(gè)是自己知識(shí)的總結(jié);三個(gè)是自己在原有的基礎(chǔ)上改動(dòng)了下,在此記錄,可能幫助其他朋友。

用過(guò)這個(gè)插件的都知道這個(gè)插件的基本用法,我就不廢話,直接上代碼。

我需要實(shí)現(xiàn)多個(gè)文件上傳,之前的做法是定義多個(gè)不同id的input,然后把a(bǔ)jaxfileuplod方法放在for循環(huán)里,這個(gè)方法是在網(wǎng)上看到的,我覺(jué)得不怎么好,后面在網(wǎng)上找到的,就高級(jí)點(diǎn)了,直接改源碼(因?yàn)樽髡吆镁脹](méi)有跟新了,也確實(shí)滿足不了要求了)。接下來(lái)看看我是怎么改的。

引用網(wǎng)上的做法:

1、看沒(méi)有修改前的代碼

var oldElement = jQuery('#' + fileElementId); 
var newElement = jQuery(oldElement).clone(); 
jQuery(oldElement).attr('id', fileId); 
jQuery(oldElement).before(newElement); 
jQuery(oldElement).appendTo(form);

很容易看出,這個(gè)就是把id為什么的input加到from里去,那么要實(shí)現(xiàn)多個(gè)文件上傳,就改成下面的樣子:

if(typeof(fileElementId) == 'string'){ 
 fileElementId = [fileElementId]; 
} 
for(var i in fileElementId){ 
 var oldElement = jQuery('#' + fileElementId[i]); 
 var newElement = jQuery(oldElement).clone(); 
 jQuery(oldElement).attr('id', fileId); 
 jQuery(oldElement).before(newElement); 
 jQuery(oldElement).appendTo(form); 
}

 這樣改之后,初始化的代碼就要這么寫:

$.ajaxFileUpload({ 
 url:'/ajax.php', 
 fileElementId:['id1','id2']//原先是fileElementId:'id' 只能上傳一個(gè) 
});

到這里,確實(shí)可以上傳多個(gè)文件,但是對(duì)于我來(lái)說(shuō)新問(wèn)題又來(lái),多個(gè)id,我的界面的文件不是固定的,是動(dòng)態(tài)加載的,那么id要?jiǎng)討B(tài)生成,我覺(jué)得太麻煩,為什么不取name呢?然后把以上代碼改為如下:

if(typeof(fileElementId) == 'string'){ 
   fileElementId = [fileElementId]; 
  } 
  for(var i in fileElementId){ 
   //按name取值 
   var oldElement = jQuery("input[name="+fileElementId[i]+"]"); 
   oldElement.each(function() { 
    var newElement = jQuery($(this)).clone(); 
    jQuery(oldElement).attr('id', fileId); 
    jQuery(oldElement).before(newElement); 
    jQuery(oldElement).appendTo(form); 
   }); 
  }

 這樣改了 那么就可以實(shí)現(xiàn)多組多個(gè)文件上傳,接下來(lái)看我是怎么應(yīng)用的。

html:

                                           多組多個(gè)文件                                         第一組         第二組                                                                           Upload         添加一組                            

js:

/** 
 * Created with IntelliJ IDEA. 
 * User: Administrator 
 * Date: 13-7-3 
 * Time: 上午9:20 
 * To change this template use File | Settings | File Templates. 
 */ 
$(document).ready(function () { 
 $("#up1").click(function(){ 
  var temp = ["gridDoc","caseDoc"]; 
  ajaxFileUpload(temp); 
 }); 
 
 $("#addInput").click(function(){ 
  addInputFile(); 
 }); 
 
}); 
 
//動(dòng)態(tài)添加一組文件 
function addInputFile(){ 
 $("#calculation_model").append(" "+ 
  " "+ 
  " "+ 
  ""); 
} 
 
 
//直接使用下載下來(lái)的文件里的demo代碼 
function ajaxFileUpload(id) 
{ 
 //starting setting some animation when the ajax starts and completes 
 $("#loading").ajaxStart(function(){ 
   $(this).show(); 
  }).ajaxComplete(function(){ 
   $(this).hide(); 
  }); 
 
 /* 
  prepareing ajax file upload 
  url: the url of script file handling the uploaded files 
  fileElementId: the file type of input element id and it will be the index of $_FILES Array() 
  dataType: it support json, xml 
  secureuri:use secure protocol 
  success: call back function when the ajax complete 
  error: callback function when the ajax failed 
 
  */ 
 $.ajaxFileUpload({ 
   url:'upload.action', 
   //secureuri:false, 
   fileElementId:id, 
   dataType: 'json' 
  } 
 ) 
 
 return false; 
 
}

我后臺(tái)是用的struts2,strtus2的上傳是比較簡(jiǎn)單的,只要聲明約定的名字,即可得到文件對(duì)象,和名稱,代碼如下:

package com.ssy.action; 
 
import com.opensymphony.xwork2.ActionSupport; 
import org.apache.commons.io.FileUtils; 
import org.apache.struts2.util.ServletContextAware; 
 
import javax.servlet.ServletContext; 
import java.io.*; 
import java.text.SimpleDateFormat; 
import java.util.Date; 
import java.util.Random; 
 
/** 
 * Created with IntelliJ IDEA. 
 * User: Administrator 
 * Date: 13-7-2 
 * Time: 下午4:08 
 * To change this template use File | Settings | File Templates. 
 */ 
public class Fileupload extends ActionSupport implements ServletContextAware { 
 private File[] gridDoc,caseDoc; 
 private String[] gridDocFileName,caseDocFileName; 
 
 private ServletContext context; 
 
  
 
 public String execute(){ 
  for (int i = 0;i

關(guān)于“ajaxFileupload如何實(shí)現(xiàn)多文件上傳功能”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。


新聞標(biāo)題:ajaxFileupload如何實(shí)現(xiàn)多文件上傳功能
文章出自:http://weahome.cn/article/jhschi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部