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>
<
/**//*
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));









































































































































