|
多選文件上傳,已經(jīng)非常多了,選擇性多了可能有時(shí)候要比較下哪個(gè)更合適,結(jié)合到項(xiàng)目中使用更方便才是最重要的。很多的多選上傳基本上都是調(diào)用的swf文件,確實(shí)用flash 或flex開(kāi)發(fā)一個(gè)多選上傳的功能很方便,比如flex里內(nèi)置的FileReferenceList對(duì)象本身就支持文件的多選,有這個(gè)的話就方便多了,下面要說(shuō)的主要也是基于flex開(kāi)發(fā)的一個(gè)多選上傳功能。
主要實(shí)現(xiàn)的功能如下:
一、選擇多個(gè)文件上傳并顯示單個(gè)文件的上傳進(jìn)度
二、顯示所有文件總的上傳進(jìn)度
三、顯示所有上傳文件的總大小
四、上傳前可以刪除任意選定一個(gè)或多個(gè)文件(按住Ctrl或Shift鍵)
五、ASP.NET頁(yè)面調(diào)用生成的swf文件異步上傳到服務(wù)器
先看下演示的截圖,如下:
大致功能和上面截圖一樣,下面主要說(shuō)下ASP.NET里怎么調(diào)用,F(xiàn)LEX的里面代碼我這里就不詳細(xì)說(shuō)明了,F(xiàn)LEX里面的代碼不多,文章后面提供下載,用flex3.0或4.0可以打開(kāi)運(yùn)行。
其中有一個(gè)地方說(shuō)明一下,就是在多選刪除的地方,為了保證隨意多選刪除的正確性,需要把選定的索引項(xiàng)降序排序,每次從數(shù)組最大處刪除,避免循環(huán)刪除時(shí)索引超界。
function deleteItem():void{
var selectItems:Array = process_list.selectedItems;
var selectIndex:Array = process_list.selectedIndices;
selectIndex = selectIndex.sort(2);//索引按降序排序
var iCount:int = selectItems.length;
var sizeMum:Number = 0;
for(var i:int=0;i<iCount;i++){
info.splice(selectIndex[i],1);
fileRef.fileList.splice(selectIndex[i],1);//移除的選擇項(xiàng)按索引從大到小移除,以便移除過(guò)程中索引不超界
}
for(var j:Number=0;j<fileRef.fileList.length;j++){
sizeMum+=fileRef.fileList[j].size;
}
process_list.dataProvider = info;
tip_txt.text="共"+fileRef.fileList.length+"個(gè)文件 "+(sizeMum/(1024*1024)).toFixed(4).toString()+"MB";
if(info.length<=0){
delete_btn.enabled = false;
}
}
NET技術(shù):再次分享一個(gè)多選文件上傳方案,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。