Interfaçage Flash / PHP : upload de fichiers
Bonjour, j'ai bien lu http://stephaneey.developpez.com/tut...shmx/flashphp/
et je voudrais que vous me disiez ce que vous pensez de mon mode de fonctionnement.
1. Ce que je veux faire
J'ai un petit module flash permettant l'upload de fichiers (merci Sub0)
Je voudrais qu'il télécharge les fichiers dans un dossier créé à la volée prenant en compte un UserId (transmis par une variable en lien genre page.php?userid=n)
je voudrais un bouton "terminer" qui envoie vers une page d'upload avec en parametre le nom du dossier créé.
2. Voici mes idées :
Dans le .fla :
déclarer un objet de communication :
phpCom = new LoadVars();
interface php->flash
- envoyer l'userid (transmis de la sorte : gerer.php?userId=n)
Code:
phpCom.sendAndLoad("gerer.php",phpCom,"POST");
- utilisation de l'userid :
Code:
phpCom.userId (à concatener dans le nom de dossier)
-> quelle est la commande pour concatener en flash ?
-> Comment créer un dossier par ftp en flash ?
interface flash->php
- transmettre le nom du dossier
Code:
1 2 3
| phpCom.directory=(nom du dossier)
phpCom.sendAndLoad("upload.php",phpCom,"POST"); |
(ce send and load est à mettre dans le "on click" d'un bouton "Terminer")
Dans le upload.php :
traitement classique en utilisant $_POST[]
->est-ce que j'aurai encore UserId dans le POST ?
Voilà, à vos claviers les flashouilleurs !
Merci d'avance ;)
(NB : je connais encore moins le flash que la pelote venezuelienne)
Comment ajouter un champ supplémentaire ?
Bonjour tout le monde.
J'ai un code FLASH pour télécharger un fichier via PHP. Le code marche nickel. Ce que j'aimerais faire, c'est d'ajouter un champ nom et un champ email au FLASH Quelqu'un peut m'aider? Le traitement au niveau PHP ne pose pas de prob si vous m'aidez à envoyer les deux variables via FLash.
Voici le code Flash
Code:
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); |
Merci beaucoup