1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
|
import flash.net.FileReferenceList;
import flash.net.FileReference;
import mx.controls.ProgressBar;
/*
Oui il est tout a fait possible d'appliquer un filtre sur les fichiers dans la fenetre de sélectin. Voici un exemple de code :
var allTypes:Array = new Array();
var imageTypes:Object = new Object();
imageTypes.description = "Images (*.JPG;*.JPEG;*.JPE;*.GIF;*.PNG<img src="images/smilies/wink.gif" border="0" alt="">";
imageTypes.extension = "*.jpg; *.jpeg; *.jpe; *.gif; *.png;";
allTypes.push(imageTypes);
var textTypes:Object = new Object();
textTypes.description = "Text Files (*.TXT;*.RTF<img src="images/smilies/wink.gif" border="0" alt="">";
textTypes.extension = "*.txt; *.rtf";
allTypes.push(textTypes);
var fileRef:FileReferenceList = new FileReferenceList();
fileRef.browse(allTypes);
*/
var FLRef:FileReferenceList = new FileReferenceList();
// Adresse du script qui va gérer le fichier uploadé
var urlUpload = "http://127.0.0.1/WEB/SCRIPTS_VRAC/upload/FILEREFERENCE/FileUploader/upload.php";
var arListFiles:Array;
var compteurUpload = 0;
var total_upload = 0;
var total_current_upload = 0;
var upload = 0;
var current_upload = 0;
var nb_file_upload = 0;
// Listener pour gérer les événements
var listener:Object = new Object();
FLRef.addListener(listener);
// Event sur la selection du ou des fichiers
listener.startAllUploads = function(fileRL:FileReferenceList) {
trace('tttptptp');
compteurUpload = 0;
arListFiles = fileRL.fileList;
trace(arListFiles);
// On récupére la taille totale des fichiers à uploader
for (var i:Number = 0; i<fileRL.fileList.length; i++) {
total_upload += arListFiles[i].size;
trace (arListFiles[i].size);
}
// Maintenant on commence par uploader le premier fichier
if (arListFiles[compteurUpload] != null) {
arListFiles[compteurUpload].addListener(this);
arListFiles[compteurUpload].upload(urlUpload);
}
};
////////
listener.onSelect = function(fileRL:FileReferenceList) {
alert('tt');
arListFiles = fileRL.fileList;
for (var i:Number = 0; i<fileRL.fileList.length; i++) {
trace(arListFiles[i].name);
}
};
upload_btn.onRelease = function() {
listener.startAllUploads(FLRef);
trace('upstart'+arListFiles);
};
listener.onComplete = function(file:FileReference):Void {
trace ('complete'+file);
total_current_upload += upload;
upload = 0;
if (compteurUpload+1<arListFiles.length) {
compteurUpload++;
// Maintenant on upload le fichier suivant
if (arListFiles[compteurUpload] != null) {
arListFiles[compteurUpload].addListener(this);
arListFiles[compteurUpload].upload(urlUpload);
}
}
};
//
////////////////
//
listener.onUploadCompleteData = function(file:FileReference, mon_retour) {
flash.external.ExternalInterface.call("module._getMyLastFile", mon_retour);
trace('php dit '+mon_retour);
};
// Event sur erreur HTTP
listener.onHTTPError = function(file:FileReference):Void {
};
// Event sur l'annulation de l'upload
listener.onCancel = function(file:FileReference):Void {
};
// Event sur l'ouverture du fichier
listener.onOpen = function(file:FileReference):Void {
};
// Mise à jour des progresse bar
listener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void {
//trace ("onProgress : " + file.name);
if (upload == 0) {
upload = bytesTotal;
}
// PB Current
current_upl.setProgress(bytesLoaded, upload);
// PB Total
total_upl. setProgress(total_current_upload+by
tesLoaded, total_upload);
};
// Event d'erreur E/S
listener.onIOError = function(file:FileReference):Void {
};
// Bouton pour l'upload
btnUpload.onPress = function() {
FLRef.browse();
}; |
Partager