`
lixinye0123
  • 浏览: 324203 次
  • 性别: Icon_minigender_1
  • 来自: 温州
社区版块
存档分类
最新评论

Flex上传组件

    博客分类:
  • Flex
阅读更多
FileUpload.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()" viewSourceURL="srcview/index.html">
    
    
<mx:Script>
        
<![CDATA[
        
            
/**//*
            
            Examples_FileUpload
            
            Written by:
            Dustin Andrew
            dustin@flash-dev.com
            www.flash-dev.com
            
            
*/

        
            
import mx.states.*;
            
import mx.controls.*;
            
import mx.managers.*;
            
import mx.events.*;
            
import flash.events.*;
            
import flash.net.*;
            
            
private const _strUploadDomain:String = "http://codycodingcowboy.cahlan.com/";
            
private const _strUploadScript:String = _strUploadDomain + "files/upload.php";
            
            
private var _arrUploadFiles:Array;
            
private var _numCurrentUpload:Number = 0;
            
private var _refAddFiles:FileReferenceList;    
            
private var _refUploadFile:FileReference;
            
            
private var _winProgress:winProgress;
            
            
private function initApp():void ...{
                Security.allowDomain(
"*");
                _arrUploadFiles 
= new Array();
            }
            
            
            
// Called to add file(s) for upload
            private function addFiles():void ...{
                _refAddFiles 
= new FileReferenceList();
                _refAddFiles.addEventListener(Event.SELECT, onSelectFile);
                _refAddFiles.browse();
            }

            
            
// Called to remove selected file(s) for upload
            private function removeFiles():void ...{
                var arrSelected:Array 
= listFiles.selectedIndices;
                
for (var i:Number = 0; i < arrSelected.length; i++...{
                    _arrUploadFiles[Number(arrSelected[i])] 
= null;
                }

                
for (var j:Number = 0; j < _arrUploadFiles.length; j++...{
                    
if (_arrUploadFiles[j] == null...{
                        _arrUploadFiles.splice(j, 
1);
                        j
--;
                    }

                }

                listFiles.dataProvider 
= _arrUploadFiles;
                listFiles.selectedIndex 
= 0;
                
if (_arrUploadFiles.length == 0...{
                    btnUpload.enabled 
= false;
                }
 else ...{
                    btnUpload.enabled 
= true;
                }

            }

            
            
// Called when a file is selected
            private function onSelectFile(event:Event):void ...{
                var arrFoundList:Array 
= new Array();
                
// Get list of files from fileList, make list of files already on upload list
                for (var i:Number = 0; i < _arrUploadFiles.length; i++...{
                    
for (var j:Number = 0; j < _refAddFiles.fileList.length; j++...{
                        
if (_arrUploadFiles[i].label == _refAddFiles.fileList[j].name) ...{
                            arrFoundList.push(_refAddFiles.fileList[j].name);
                            _refAddFiles.fileList.splice(j, 
1);
                            j
--;
                        }

                    }

                }

                
if (_refAddFiles.fileList.length >= 1...{
                    
for (var k:Number = 0; k < _refAddFiles.fileList.length; k++...{
                        _arrUploadFiles.push(
...{label:_refAddFiles.fileList[k].name, data:_refAddFiles.fileList[k]});
                    }

                    listFiles.dataProvider 
= _arrUploadFiles;
                    listFiles.selectedIndex 
= _arrUploadFiles.length - 1;
                }
                
                
if (arrFoundList.length >= 1...{
                    Alert.show(
"The file(s):  • " + arrFoundList.join(" • "+ " ...are already on the upload list. Please change the filename(s) or pick a different file.""File(s) already on list");
                }

                
if (_arrUploadFiles.length == 0...{
                    btnUpload.enabled 
= false;
                }
 else ...{
                    btnUpload.enabled 
= true;
                }

            }

            
            
            
// Cancel and clear eventlisteners on last upload
            private function clearUpload():void ...{
                _numCurrentUpload 
= 0;
                _refUploadFile.removeEventListener(ProgressEvent.PROGRESS, onUploadProgress);
                _refUploadFile.removeEventListener(Event.COMPLETE, onUploadComplete);
                _refUploadFile.removeEventListener(IOErrorEvent.IO_ERROR, onUploadIoError);
                _refUploadFile.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onUploadSecurityError);
                _refUploadFile.cancel();
            }

            
            
// Called to upload file based on current upload number
            private function startUpload(booIsFirst:Boolean):void ...{
                
if (booIsFirst) ...{
                    _numCurrentUpload 
= 0;
                }

                
if (_arrUploadFiles.length > 0...{
                    _winProgress 
= winProgress(PopUpManager.createPopUp(this, winProgress, true));
http://images.csdn.net/sy
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics