« If Hairloss is the major problem you have | Home | Use an Item Renderer to create a Component that will load up a given URL. The easiest way is to use the LinkButton Control »
Flash Multi File Upload
By admin | June 30, 2008
import com.adobe.serialization.json.JSON
// button name browsebtn,uploadbtn
browsebtn.addEventListener(MouseEvent.CLICK,browse);
uploadbtn.addEventListener(MouseEvent.CLICK,upload);
//var fileRefList:FileReferenceList = new FileReferenceList();
var instance:Object = new Object();
instance.fileList = new Array();
instance.multiple = true;
instance.queued = true;
instance.fileList = new Array();
instance.fileProgress = new Array();
instance.progress = {
filesFinished: 0,
filesTotal: 0,
bytesFinished: 0,
bytesLoaded: 0,
bytesTotal: 0
};
function browse(typeFilter:Object = null):Object {
if (instance.fileReference) return false;
instance.fileReference = new FileReferenceList();
//instance.fileReference.addEventListener(Event.SELECT,selectHandler);
//instance.fileReference.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, completeHandler);
//instance.fileReference.addEventListener(Event.COMPLETE,completeHandler);
addEvents(instance.fileReference);
if (instance.fileReference.browse()) return true;
//instance.fileReference.browse();
//trace(’browsing’);
return false;
}
function upload(options:Object = null):Object{
trace(’Upoading’);
if (!instance.fileList.length) return false;
for (var i:Number = 0; i < instance.fileList.length; i++){
uploadFile(instance.fileList[i]);
}
return true;
}
function selectHandler(event:Event):void
{
if (instance.fileList.length) removeFile();
//var request:URLRequest = new URLRequest("http://localhost/fupload/myupload.php");
var file:FileReference;
var files:FileReferenceList = FileReferenceList(event.target);
var selectedFileArray:Array = files.fileList;
for (var i:uint = 0; i < selectedFileArray.length; i++)
{
file = FileReference(selectedFileArray[i]);
addEvents(file);
// here i added this
instance.fileList.push(file);
//file.addEventListener(Event.COMPLETE, completeHandler);
// commented and taken to upload
/*
file.addEventListener(Event.COMPLETE, completeHandler);
try
{
file.upload(request);
}
catch (error:Error)
{
trace("Unable to upload files.");
}
*/
}
instance.fileReference=null;
}
function completeHandler(event:Event):void {
trace("completeHandler: " + event);
}
function uploadCompleteDataHandler(event:DataEvent):void {
//var file:FileReference = FileReference(event.target);
var mydata:Object = JSON.decode(event.data);
trace("uploadCompleteData: " + mydata.size);
//trace('helo');
}
function indexOfFile(file:Object):Number {
var list:Array = instance.fileList;
for (var i:Number = 0; i < list.length; i++){
if ((list[i].name == file.name) && (list[i].size == file.size)) return i;
}
return -1;
};
function uploadFile(file:FileReference):void {
var request:URLRequest = new URLRequest("http://localhost/fupload/myupload.php");
var data = new URLVariables();
request.data=data;
request.method='POST';
file.upload(request);
}
function finishFile(file:FileReference):Boolean {
var removeFiled:Boolean = removeFile(file, true);
if (removeFiled) instance.uploading = false;
return removeFiled;
};
function valueOfFile(file:FileReference):Object {
return {
name: file.name,
size: file.size,
type: file.type,
creationDate: file.creationDate.valueOf(),
modificationDate: file.modificationDate.valueOf()
};
}
function removeFile(file:Object = null, finished:Boolean = false):Boolean {
if (file){
var num:Number = indexOfFile(file);
if (num == -1) return false;
instance.fileList[num].cancel();
instance.fileList.splice(num, 1);
instance.fileProgress.splice(num, 1);
if (finished){
instance.progress.bytesFinished += file.size;
instance.progress.filesFinished++;
} else {
instance.progress.bytesTotal -= file.size;
instance.progress.filesTotal--;
}
} else {
if (!instance.fileList.length) return false;
for (var i = 0; i < instance.fileList.length; i++) instance.fileList[i].cancel();
instance.fileList.length = instance.fileProgress.length = 0;
if (finished){
instance.progress.bytesFinished = instance.progress.bytesTotal;
instance.progress.filesFinished = instance.progress.filesTotal;
} else {
instance.progress.bytesTotal = instance.progress.filesTotal = instance.progress.bytesFinished = instance.progress.filesFinished = 0;
}
}
if (!instance.fileList.length) instance.uploading = false;
return true;
};
function addEvents(ref):void {
//ref.addEventListener(Event.CANCEL, cancelHandler);
//ref.addEventListener(Event.OPEN, openHandler);
//ref.addEventListener(ProgressEvent.PROGRESS, progressHandler);
//ref.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
//ref.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
//ref.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
ref.addEventListener(Event.SELECT, selectHandler);
ref.addEventListener(Event.COMPLETE,completeHandler);
ref.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA,uploadCompleteDataHandler);
}
function cancelHandler(event:Event):void {
}
function openHandler(event:Event):void {
}
function securityErrorHandler(event:SecurityErrorEvent):void {
}
function ioErrorHandler(event:IOErrorEvent):void {
}
function httpStatusHandler(event:HTTPStatusEvent):void {
}
function progressHandler(event:ProgressEvent):void {
}
Topics: My Code |
Comments
You must be logged in to post a comment.

