As3.0: upload de fichier et recuperation de la reponse du serveur

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 802 fois - Téléchargée 17 fois

Contenu du snippet

Un script en actionscript 3.0 pour permettre de recuperer des donnees en provenance du serveur : un message de confirmation par exemple

Source / Exemple :


package
{
	import flash.events.Event;
	import flash.events.DataEvent;
	import flash.events.IOErrorEvent;
	import flash.events.ProgressEvent;
	import flash.events.SecurityErrorEvent;
	
	import flash.net.FileFilter;
	import flash.net.FileReference;
	import flash.net.URLRequest;
	import flash.net.URLVariables;
	
	public class exemple_d_upload_de_fichier
	{
		private var requete:URLRequest;
		
		public function __choisirUnFichier():void
		{
			//on peut uploader les fichiers en envoyant des variables
			var parametres:URLVariables = new URLVariables;
			parametres.__variable1 = "ici une variable bidon";
		    parametres.__variable_peu_importe_ce_que_c_est = 25;
			
		        requete = new URLRequest(Global.SUBMITAPP_URL);
		        requete.method = "POST";
		        requete.data = parametres;
			
			__parcourirLesDossiers();
		}
		private function __parcourirLesDossiers():void
		{
			var selectionneurDeFichiers:FileReference = new FileReference;
			selectionneurDeFichiers.addEventListener(Event.SELECT, __alerteFichierSelectionne,false,0,true);
			selectionneurDeFichiers.addEventListener(Event.CANCEL, __alerteChoixDeFichierAvorte,false,0,true);
			selectionneurDeFichiers.browse([new FileFilter("Images PNG (*.png)", "*.png"), new FileFilter("Images JPEG (*.jpg)", "*.jpg")/*vous pouvez rajouter les extensions que vous voulez ici, si le browse() est appelle sans parametres ou le tableau ne contient rien(null ou vide) alors tous les fichiers deviennent selectionnables...*/]);
		}
		private function __alerteChoixDeFichierAvorte(event:Event):void
		{
			var selectionneurDeFichiers:FileReference = event.target as FileReference;
			selectionneurDeFichiers.removeEventListener(Event.SELECT, __alerteFichierSelectionne,false);
			selectionneurDeFichiers.removeEventListener(Event.CANCEL, __alerteChoixDeFichierAvorte,false);
		}
		private function __alerteFichierSelectionne(event:Event):void
		{
			var selectionneurDeFichiers:FileReference = event.target as FileReference;
			selectionneurDeFichiers.removeEventListener(Event.SELECT, __alerteFichierSelectionne,false);
			selectionneurDeFichiers.removeEventListener(Event.CANCEL, __alerteChoixDeFichierAvorte,false);
			
			// debut de l'upload sur le serveur
			
			selectionneurDeFichiers.addEventListener(Event.COMPLETE, __alerteUploadTermine,false,0,true);
			selectionneurDeFichiers.addEventListener(SecurityErrorEvent.SECURITY_ERROR, __alerteErreurSurvenue,false,0,true);
			selectionneurDeFichiers.addEventListener(ProgressEvent.PROGRESS, __alerteProgressionFichier,false,0,true);
			selectionneurDeFichiers.removeEventListener(IOErrorEvent.IO_ERROR, __alerteErreurSurvenue,false);
			selectionneurDeFichiers.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, __alerteReponseDuServeur,false,0,true);
			
			selectionneurDeFichiers.upload(requete, "fichierSelectionne");
			//le second parametre est le nom de reference par lequel on peut recuperer le fichier dans le script serveur
		}
		private function __alerteErreurSurvenue(event:Event):void
		{
			var selectionneurDeFichiers:FileReference = event.target as FileReference;
			selectionneurDeFichiers.removeEventListener(Event.COMPLETE, __alerteUploadTermine,false);
			selectionneurDeFichiers.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, __alerteErreurSurvenue,false);
			selectionneurDeFichiers.removeEventListener(ProgressEvent.PROGRESS, __alerteProgressionFichier,false);
			selectionneurDeFichiers.removeEventListener(IOErrorEvent.IO_ERROR, __alerteErreurSurvenue,false);
			selectionneurDeFichiers.removeEventListener(DataEvent.UPLOAD_COMPLETE_DATA, __alerteReponseDuServeur,false);
			
			//erreur lors de l'upload
		}
		private function __alerteProgressionFichier(event:ProgressEvent):void
		{
			//calcul du pourcentage
			var percent:int = int(100.0 * event.bytesLoaded/event.bytesTotal);
		}
		
		private function __alerteUploadTermine(event:Event):void
		{
			var selectionneurDeFichiers:FileReference = event.target as FileReference;
			selectionneurDeFichiers.removeEventListener(Event.COMPLETE, __alerteUploadTermine,false);
			selectionneurDeFichiers.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, __alerteErreurSurvenue,false);
			selectionneurDeFichiers.removeEventListener(ProgressEvent.PROGRESS, __alerteProgressionFichier);
			selectionneurDeFichiers.removeEventListener(IOErrorEvent.IO_ERROR, __alerteErreurSurvenue,false);
			//fichier uploade
		}
		private function __alerteReponseDuServeur(event:DataEvent):void
		{
			var selectionneurDeFichiers:FileReference = event.target as FileReference;
			selectionneurDeFichiers.removeEventListener(DataEvent.UPLOAD_COMPLETE_DATA, __alerteReponseDuServeur,false);
			
			//fichier uploade avec reponse du serveur
			var response:String = event.data as String;
			//vous pouvez maintenant en faire ce que vous voulez
		}
	}
}

A voir également

Ajouter un commentaire

Commentaires

cs_sfssousa
Messages postés
2
Date d'inscription
mercredi 15 décembre 2004
Statut
Membre
Dernière intervention
4 avril 2009
-
Bonjour
Je suis débutant en actioscript.

comment puis-je utiliser cette classe?
comme je les appelle les événements?
zoosil
Messages postés
9
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
12 juillet 2010
-
Bonjour,
Débutant en actionscript, je n'ai pas trouvé d'exemple d'utilisation de cette classe.

Pouvez-vous joindre un exemple d'utilisation de cette classe et mettre le tout dans un zip à télécharger ?

Merci pour votre aide ...
nickydaquick
Messages postés
417
Date d'inscription
vendredi 31 janvier 2003
Statut
Membre
Dernière intervention
19 décembre 2013
-
Bonjour tout le monde,

Cette classe est un exemple de capture de la reponse du serveur lors de l'upload d'un fichier. Je l'ai mise pour les inities qui ne sauraient peut-etre pas comment le faire en actionscript 3.0 (question de migration). Mais si vous voulez un exemple plus concret , je m'attelerai a vous en fournir un , zippe, avec le script PHP qui va avec... et ce bientot.

Bonne journee
on_drag_on
Messages postés
1275
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
6 octobre 2010
-
Salut Nickydaquick,

Source sympa ! Ce serait en effet super si y avait le php avec, pas mal d'entre nous n'ont que de faibles connaissances en la matière ... :)
@+ ;)
mohe4
Messages postés
1
Date d'inscription
mardi 1 septembre 2009
Statut
Membre
Dernière intervention
1 septembre 2009
-
merci pour ce code :)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.