2008-12-18 6 views
2

J'utilise HTTPService avec une opération POST pour soumettre un fichier encodé en Base64 (tiré de données bitmap dans l'application) mais je pourrais vraiment faire avec une idée de la progression de l'opération POST (par exemple, comme FileReference.upload()).Obtenir des progrès sur POST en utilisant HTTPService dans Flex/AS3

Je ne pense pas que ce soit possible, mais ce serait génial si c'est le cas (par n'importe quel moyen, je suis prêt à changer ma configuration pour l'obtenir).

Répondre

8

N'utilisez pas HTTPService. Utilisez URLRequest, URLLoader et URLVariables.

Si votre aide d'une balise HTTPService, obtenir Chevauchée et le remplacer par une balise de script rempli de quelque chose comme ...


private function forYou() : void{ 
    var req : URLRequest = new URLRequest("PUT YOUR URL HERE") 
    var loader : URLLoader = new URLLoader(); 
    var params : URLVariables = new URLVariables(); 
    params.WHATEVER = WHATEVER YOU WANT IT TO BE; 
    req.data = params; 
    req.method = URLRequestMethod.POST; 
    loader.addEventListener(ProgressEvent.PROGRESS, YOUR LISTENER FUNCTION NAME); 
    loader.load(req); 
} 

Attribuer ce nom de fonction à l'attribut creationComplete de la balise racine. Si vous n'utilisez pas de balise HTTPService, vous n'avez qu'à faire rouler l'objet HTTPService dans votre actionscript et utiliser le code ci-dessus.

+0

Ceci est une bonne réponse pour télécharger des informations, mais la question est sur le téléchargement. –

0

Ceci est impossible avec HTTPService. Ses seuls événements sont result, fault et invoke (autres que les événements hérités non pertinents de activate et deactivate). Pour obtenir des informations de progression sur un processus de téléchargement, le serveur doit fournir les informations, ce qui nécessite un moyen de communication entre le serveur et le client pendant l'opération, qui n'est pas là pour une opération HTTP POST normale. .

Une option peut être de créer un objet sur le serveur qui serait instancié chaque fois que le serveur recevrait des données POST de votre client. Il suivrait alors la progression et exposerait ces données au reste de votre application côté serveur. Votre client pourrait alors lancer un système de sondage qui demanderait la valeur de cette variable particulière.

On dirait genre d'une option farfelue, mais ...

Questions connexes