|
多選文件上傳,已經非常多了,選擇性多了可能有時候要比較下哪個更合適,結合到項目中使用更方便才是最重要的。很多的多選上傳基本上都是調用的swf文件,確實用flash 或flex開發一個多選上傳的功能很方便,比如flex里內置的FileReferenceList對象本身就支持文件的多選,有這個的話就方便多了,下面要說的主要也是基于flex開發的一個多選上傳功能。
主要實現的功能如下:
一、選擇多個文件上傳并顯示單個文件的上傳進度
二、顯示所有文件總的上傳進度
三、顯示所有上傳文件的總大小
四、上傳前可以刪除任意選定一個或多個文件(按住Ctrl或Shift鍵)
先看下演示的截圖,如下:
大致功能和上面截圖一樣,下面主要說下ASP.NET里怎么調用,FLEX的里面代碼我這里就不詳細說明了,FLEX里面的代碼不多,文章后面提供下載,用flex3.0或4.0可以打開運行。
其中有一個地方說明一下,就是在多選刪除的地方,為了保證隨意多選刪除的正確性,需要把選定的索引項降序排序,每次從數組最大處刪除,避免循環刪除時索引超界。
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);//移除的選擇項按索引從大到小移除,以便移除過程中索引不超界
}
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+"個文件 "+(sizeMum/(1024*1024)).toFixed(4).toString()+"MB";
if(info.length<=0){
delete_btn.enabled = false;
}
}
NET技術:再次分享一個多選文件上傳方案,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。