2010-12-18 8 views
1

Ich möchte Flash verwenden, um ein ByteArray (eines PNG-Bildes) an eine PHP-Datei in einer Facebook-Anwendung zu senden. Gibt es eine Möglichkeit, dies zu tun, indem Sie das ByteArray als nur eine POST-Variable anstelle der gesamten POST-Daten senden?Sende ein Actionscript ByteArray als POST-Variable (innerhalb von Facebook)

Es gab eine fast identische Frage hier: How can I send a ByteArray (from Flash) and some form data to php?, aber das Problem ist anders; Anstatt andere Variablen in anderen Teilen der Anfrage zu schmuggeln, muss das Bild selbst nur als eine Variable gesendet werden, da Facebook die Postdaten übernimmt und in seinen eigenen Müll steckt.

Ist das überhaupt möglich? Wenn nicht, kann ich das Bild in einer anderen Form als einem ByteArray senden?

Antwort

0

Ich denke, der einfachste Weg ist Base64 Codierung des Bildes vor dem Senden. Dann ist es nur eine Zeichenfolge und es ist sicher, sie als normale POST-Variable zu übergeben.

Auf der PHP-Seite müssen Sie nur base64_decode diese Zeichenfolge und dann haben Sie Ihre Bilddaten bereit, um es in Datei oder was auch immer Sie benötigen (Sie könnten es auch GD oder andere solche Bibliothek, wenn Sie manipulieren müssen Feed es es zuerst).

Eine andere Option, zumindest in der Theorie, ist multipart/data, genau wie Sie in einem HTML-Formular eine Datei senden würden, aber wenn ich mich richtig erinnere, erlaubt der Player nicht, Dateien mit dieser Methode zu senden (bis Version 9.0.124 oder so ähnlich war das möglich).

So ist base64 einfach und einfach und es fügt nur etwas Overhead hinzu; 1/3 der Datei-Payload in Bezug auf die Größe und einige Verarbeitungszeit, aber in den meisten Fällen ist dies keine große Sache.

+0

Danke, es funktioniert. Ich habe diese Klasse für base64 verwendet: http://code.google.com/p/as3crypto/source/browse/trunk/as3crypto/src/com/hurlant/util/Base64.as – Lack

Verwandte Themen