www.mutationevent.com

Articles taggés avec ‘fileReference’

Télécharger un fichier avec AS 3

Samedi 20 décembre 2008

Nous savons que pour télécharger un fichier depuis un site avec la machine du client il suffit parfois de le compresser en .zip par exemple et l'ouvrir comme n'importe quel lien et c'est le navigteur qui ouvre la fenêtre de téléchargement puisqu'il n'arrive pas reconnaître ou interpréter le fichier. Mais parfois on a besoin de forcer le téléchargement de certains fichiers cela est possible avec les langages des programmations côté serveur tel que PHP, ASP, JSP, RoR, CFM ...

Cela est désormais possible avec ActionSscript 3, pour cela on besoin de la class FileReference qui se trouve dans le package flash.net.FileReference et qui permet de télécharger n'importe quel fichier grâce à la méthode download.

Supposons que nous voulons télécharger un fichier .zip depuis une URL (http://www.votreserveur.com/fichier.zip)

on peut aussi ajouter des écouteurs d'événement pour savoir si le fichier est en cours de téléchargement, s'il y a eu une erreur, si le téléchargement est terminé et même aussi d'arrêter le téléchargement.

Event.CANCEL
Event.COMPLETE
Event.OPEN
Event.SELECT
HTTPStatusEvent.HTTP_STATUS
IOErrorEvent.IO_ERROR
ProgressEvent.PROGRESS
SecurityErrorEvent.SECURITY_ERROR
DataEvent.UPLOAD_COMPLETE_DATA

code:

package
{
    import flash.display.MovieClip;
    import flash.net.FileReference;
    import flash.net.URLRequest;
    import flash.events.Event;
    import flash.events.ProgressEvent;
    import flash.events.IOErrorEvent;
 
    public class Main extends MovieClip
    {
 
        // Constants:
        // Public Properties:
        public var fileDownload:FileReference;
        public var url:URLRequest;
 
        // Private Properties:
 
        // Initialization:
        public function Main() {
 
            trace("main class loaded");
 
            fileDownload = new FileReference();
            url = new URLRequest("http://www.votreserveur.com/fichier.zip");
 
            fileDownload.addEventListener(ProgressEvent.PROGRESS, onProgress);
            fileDownload.addEventListener(Event.COMPLETE, onComplete);
            fileDownload.addEventListener(IOErrorEvent.IO_ERROR, onError);
 
            fileDownload.download(url);
 
        }
 
        // Public Methods:
        public function onProgress(event:ProgressEvent):void
        {
            trace("chargement en cours : " + event.bytesLoaded / event.bytesTotal);
        }
 
        public function onComplete(event:Event):void
        {
            trace("téléchargement terminer");
        }
 
        public function onError(event:IOErrorEvent):void
        {
            trace("Erreur de chargement du fichier");
        }
 
        // Protected Methods:
    }
 
}

Télécharger le fichier Download File as3 (470)



  • Archives

  • Catégories

  • @mutationevent