onComplete non déclenché lors d'un upload de fichier

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Hello tout le monde,

J'ai codé un petit script AS3 (flash) qui permet d'envoyer d'uploader des fichiers. Ça fonctionne bien, j'ai bien mon onProgress qui est trigger… Oui mais voilà, le onComplete, lui, ne fonctionne pas ! Et bien entendu j'ai besoin du retour de mes requêtes.

Si quelqu'un qui connait l'actionscript peut m'aider… Voici le code en question:

 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
package com.foo.http 
{
    import com.jonas.net.Multipart;
    import flash.net.*;
    import flash.events.*;
    import flash.utils.ByteArray;
    import flash.external.ExternalInterface;

    /**
     * Manage a request to a specified URL
     * It trigger errors to javascript function "flashError(type, message)"
     * 
     * @author Maxime Veber
     */
    public class RequestManager
    {
        private var request:Multipart;
        private var loader:URLLoader;

        /**
         * The url can be http://foobar:952/helloworld
         * @param   url
         */
        public function RequestManager(url:String)
        {
            this.loader = new URLLoader();
            this.request = new Multipart(url);

            // This is needed, if we don't set it, the complete event will never be trigger
            this.loader.dataFormat = URLLoaderDataFormat.BINARY;

            // Events
            this.attachEvents();
            ExternalInterface.addCallback("setRequestField", this.setField);
        }

        public function getRequest():Multipart
        {
            return this.request;
        }

        public function setField(name:String, value:String):void
        {
            this.request.addField(name, value);
        }

        public function send():void
        {
            this.loader.load(this.request.request);
        }

        private function attachEvents():void
        {
            this.loader.addEventListener(Event.COMPLETE, this.requestCompleted);
            this.loader.addEventListener(ProgressEvent.PROGRESS, this.requestProgress);
            this.loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.securityError);
            this.loader.addEventListener(IOErrorEvent.IO_ERROR, this.networkError);
        }
    }
}

Merci d'avance !

Édité par Nek

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte