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 120 121 122 123 124 125 126
|
import flash.net.FileReference;
import flash.net.FileReferenceList;
var listener:Object = new Object();
//============================================================================
// Définition des constantes du script
//============================================================================
fileURL = "upload.php";
MaxSize =40000000;
//fileURL = "/cgi-bin/upload.pl";
//MaxSize = -1;
//============================================================================
// Formatage de la taille des fichiers
//============================================================================
function GetSizeFormat(Size:Number){
if (Size >= 1000)
return Math.floor(Size/1000) + " Ko";
else
return Size + " octets";
}
//============================================================================
// Sélection des fichiers + uploader la liste des fichiers
//============================================================================
listener.onSelect = function(fileRefList:FileReferenceList) {
browse_btn.enabled = false;
trace("onSelect");
var list:Array = fileRefList.fileList;
var file:FileReference;
for(var i:Number = 0; i < list.length; i++) {
file = list[i];
trace("name: " + file.name);
trace(file.addListener(this));
if ((file.size <= MaxSize) or (MaxSize < 0)) {
file.upload(fileURL);
} else {
var item:Object = new Object();
item.FileSize = "Annule";
item.FileName = file.name;
grid.addItem(item);
}
}
}
//============================================================================
// Annulation du dialogue d'ouverture de fichiers
//============================================================================
listener.onCancel = function():Void {
trace("onCancel");
browse_btn.enabled = true;
stat.text = "";
}
//============================================================================
// Evénement d'ouverture d'un fichier
//============================================================================
listener.onOpen = function(file:FileReference):Void {
trace("onOpen: " + file.name);
}
//============================================================================
// Affichage de la progression
//============================================================================
listener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void {
if (bytesTotal == -1)
stat.text = "Impossible de determiner le poids du fichier "+file.name;
else {
stat.text = "Telechargement de " + file.name + " : " +
Math.floor((bytesLoaded/file.size)*100) + "% of " +
GetSizeFormat(file.size);
browse_btn.enabled = false;
}
}
//============================================================================
// Téléchargement completé
//============================================================================
listener.onComplete = function(file:FileReference):Void {
trace("onComplete: " + file.name);
stat.text = "Le transfert est maintenant termine !";
browse_btn.enabled = true;
var item:Object = new Object();
item.FileSize = GetSizeFormat(file.size);
item.FileName = file.name;
grid.addItem(item);
}
//============================================================================
// Evénement gestion des erreurs
//============================================================================
listener.onHTTPError = function(file:FileReference, httpError:Number):Void {
trace("onHTTPError: " + file.name + " httpError: " + httpError);
stat.text = "HTTPError = Erreur de transmission du fichier " + file.name;
}
listener.onIOError = function(file:FileReference):Void {
trace("onIOError: " + file.name);
stat.text = "IOError = Erreur de transmission du fichier " + file.name;
}
listener.onSecurityError = function(file:FileReference, errorString:String):Void {
trace("onSecurityError: " + file.name + " errorString: " + errorString);
stat.text = "SecurityError = Erreur de transmission du fichier " + file.name + ". " + errorString;
}
//============================================================================
// Dialogue de sélection des fichiers
//============================================================================
browse_btn.onRelease = function():Void {
stat.text = "Selection des fichiers a telecharger...";
browse_btn.enabled = false;
fileRef.browse(allTypes);
}
//============================================================================
// Main
//============================================================================
var fileRef:FileReferenceList = new FileReferenceList();
var allTypes:Array = new Array();
var imageTypes:Object = new Object();
imageTypes.description = "Tous fichiers (*.*)";
imageTypes.extension = "*.*;";
allTypes.push(imageTypes);
fileRef.addListener(listener); |
Partager