Hej alle.
Jeg roder med en AS3-udgave af mit website på http://81.7.144.103 og arbejder mere specifikt på en multiupload-funktion, således at en bruger kan uploade 5-10 billeder ad gangen.
Hvert billede får, efter upload, ændret sit filnavn iht. primærnøglen i databasen.
Udfordringen er at PHP-scriptet efter hver upload skal returnere denne primærnøgle (på den måde kan jeg umiddelbart efter referere til previews af de netop uploadede billeder).
PHP-scriptet har en "return $billedid" i slutningen, men hvordan tager jeg imod denne variabel?
Prøv at se dette udklip:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | private function paabegyndUpload(hvilkenlinie) { trace("Vores parent: "+Object(this.parent.parent).profilKunstnerID); var variables:URLVariables = new URLVariables(); variables.brugerid = Object(this.parent.parent).profilKunstnerID; URLrequest.contentType = "multipart/form-data"; URLrequest.data = variables; URLrequest.method = URLRequestMethod.POST; uploadlinier[hvilkenlinie].progressBar.visible = true; uploadlinier[hvilkenlinie].fileRef.addEventListener(Event.COMPLETE, completeHandler); uploadlinier[hvilkenlinie].fileRef.addEventListener(ProgressEvent.PROGRESS, progressHandler); uploadlinier[hvilkenlinie].fileRef.upload(URLrequest, "Filedata"); } private function progressHandler(event:ProgressEvent):void { uploadlinier[aktuelUpload].progressBar.width = Math.ceil(363*(event.bytesLoaded/event.bytesTotal)); } function completeHandler(event:Event):void { // Her skal vi tage imod billedets primærnøgle, der tildeles af databasen aktuelUpload++; } |
4 kommentarer
Jeg er ikke helt sikker på det er best practise, men det er utroligt nemt at behandle returneret data i as3 hvis du echoer en querystring med dine variabler i PHP. Så kan du gribe det i et URLVariables objekt inde i flash i din completeHandler.
Noget i den her stil...
I stedet for Event.COMPLETE kan du bruge DataEvent.UPLOAD_COMPLETE_DATA som bliver kaldt når serveren returnerer dine variabler
http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/flash/net/...
Er ikke et svar til dig, men bare en reference til din besked:
Du kan faktisk også bare poste dit id som det eneste i din PHP fil,
og hente det i din onComplete event med e.target.data.toString()
- Men det gi'r selvfølgelig også lidt sig selv
Hej alle.
Tusind tak for jeres svar - det var til stor hjælp.
Her er et udsnit af den endelige kode (hvis der nu er andre, der har lignende problemer):