Bonjour,
Au grés de mes recherches sur internet j'ai trouver ce .fla qui permet d'uploader des fichiers via une interface en flash.
Je suis a la recherche d'une tel chose car l'upload de fichier via php foire passer 30 secondes (time out).
Ce script fonctionne jusqu'à un peu moins de 5 mo, mais je désire pouvoir aller jusqu'à' a 8 / 10 Mo.
De plus il faudrait pouvoir retourner le nom du fichier dans une variable (appelons la $fname) ainsi qu'une redirection (avec cette variable dans l'url) vers une autre page.
Je remercie tous ceux et celle qui sauront m'aider, car je ne connais absolument pas Flash.
Cordialement,
PS: voici le script en question :
import flash.net.FileReference;
import flash.net.FileReferenceList;
var listener:Object = new Object();
//============================================================================
// Définition des constantes du script
//============================================================================
fileURL = "upload.php";
MaxSize = 20000000;
//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);
PS2: je trouve pas de balise comme [code] donc excuser moi, si l'apparence n'est pas top.