Wie zum hochladen von einem BitmapData-Objekt direkt auf meinen server?
Ich Sie hochladen möchten, aus meiner Flash-Anwendung (AS3) auf imageshacks XML-API. Ich möchte wissen, wie ich dies tun kann.
"In Flash, müssen wir die Daten POSTEN verwenden der UrlRequest-und UrlLoader-Klassen, allerdings laufen wir in eine Begrenzung der Flash-API benötigt werden. Die data-Eigenschaft des UrlRequest-Objekt kann entweder ein UrlVariablesByteArray Objekt. Es gibt keine einfache Möglichkeit zum senden von name-Wert-Paaren zusammen mit der JPG-byte-array. Dies ist ein großes problem, da die meisten upload-Anwendungen benötigen einen Dateinamen und einen anderen Header zu begleiten, die raw-Datei-Daten"
Ich hatte gehofft, wenn mir jemand helfen könnte überwinden die oben genannten!
Danke an alle
Update
Ich habe versucht, das tutorial hier:http://www.mikestead.co.uk/2009/01/04/upload-multiple-files-with-a-single-request-in-flash/
Das problem ist, es ist nicht für nicht gespeicherte Bilder, aber Sie bekommen Sie Bilder von Ihrem lokalen Rechner und dann lädt es auf den server, wo die Bilder hat ein name schon!
- hey! broken-link... 🙁
Du musst angemeldet sein, um einen Kommentar abzugeben.
War dies eine große Hilfe für mich: http://kitchen.braitsch.io/upload-bitmapdata-snapshot-to-server-in-as3/
Müssen Sie zum ändern der URLRequestWrapper einfügen-Feld-und Dateinamen, wo nötig. Hier ist, was ich getan habe:
Tut es die Formatierung der Header, also der server konnte es verstehen als eine Datei hochladen.
Durch die Art und Weise, wenn Sie haben ein BitmapData müssen Sie möglicherweise zu codieren, es in eine JPEG-oder PNG-ersten.
Grüße,
Artem
Senden Sie Ihre Dateinamen, Daten und anderen Daten, die Sie wollen zusammen mit der URLRequest:
auf der server-Seite in php-Zugriff auf die zusätzlichen Variablen, wie:
$_REQUEST['path'] und $_REQUEST['filename'] etc
Ich habe nicht verwendet die imageshack-API, aber ich habe geschickt BitmapData auf einem server vor.
Müssen Sie erstellen Sie ein URLRequest-Objekt, und fügen Sie die bitmapData als ein byteArray, also der code, denke ich, würde so Aussehen:
Müssen Sie möglicherweise die folgenden Importe:
Erhalten Sie ein ByteArray von Ihrem bitmapData verwenden Sie die BitmapData-s getPixels () - Methode.
Es braucht eine Rectangle-Instanz, um zu wissen, die position und die Abmessungen, die Sie benötigen, aber wenn Sie wollen das ByteArray für alle BitmapData, nicht nur ein Teil von Ihr, können Sie die BitmapData-rect-Eigenschaft.
Erstellen Sie eine Kopfzeile mit der URLRequestHeader-Klasse, und Sie schieben Sie es in die requestHeaders-Ihre URLRequest. Geben Sie Ihre Methode post verwenden Sie die Methode-Eigenschaft.
Dann sollte es dies sein. Ich bin mir nicht bewusst jede andere API-spezifische Sachen, also hoffe, das hilft.
Glück!
ich nicht wirklich, das problem von der Frage, dennoch:
Wenn die Frage ist, wie senden Sie den Namen der Datei und die Erweiterung (Bild-Typ) aus dem flash zusammen mit der byteArray-Bild-Daten, die Sie verwenden sollten, um ein URLVariables-Objekt.
Dieses Objekt könnte auch senden Sie die Abfrage-string als byte anstelle von text.
Ich habe nicht verwendet die imageshack-API, aber Sie möchten möglicherweise versuchen Sie es mit adobe-JPGEncoder Klasse - hier ist ein schnelles Beispiel, der vergeht, ein Benutzername und die JPG ' s, byte-array, es ist wirklich ganz einfach.
Beachten Sie, dass die Variablen übergeben werden, die als Teil der Abfrage-string. Sie können nicht verwenden Sie URLVariables, wie einige Leute vorgeschlagen haben, als URLVariables-würde gespeichert werden in der Anfrage die Daten der Eigenschaft, die wir bereits übergeben werden, die byteArray.
Können Sie URLVariables nur base64-Kodieren bytearray-es ist also nicht binären Daten:
dann auf der server-Seite base64decode " post-Feld, dh:
php:
Schienen:
Nur meine 2 Cent für alle diejenigen, die sind hier zu finden, eine php-Umsetzung upload.php. Wenn Sie versucht haben, HTTP_RAW_POST_DATA und es hat nicht funktioniert, versuchen Sie, file_get_contents("php://input");
es bei mir geklappt hat