PDA

Просмотр полной версии : пересылка фотографии с использованием WebServiceConnector


Igortimof
18.02.2009, 00:53
Коллеги, прошу, кто знает, подсказать способ передачи фотографии в base32 с использованием WebServiceConnector.

Надеюсь на Вашу помощь!

Спасибо!

wvxvw
18.02.2009, 03:08
А зачем их еще в строки переводить?
Вот, пример:
http://www.actionscript.org/forums/showthread.php3?t=197606
Точно так же можно и в обратную сторону выслать с использованием JPEGEncoder'a.

ЗЫ. А вот еще и туториал с объяснениями:
http://www.sephiroth.it/tutorials/flashPHP/amfphp_bytearray/page002.php

Igortimof
18.02.2009, 11:17
Ок! Спасибо!

Однако есть несколько проблем:
1. Вместе с фотографией на сервер передается еще несколько переменных, без которых с фотографией на сервере делать нечего;
2. Сервер и клиент разрабатываются отдельно. На сервере создали WSDL, которое должно хвататься из flash-объекта, заполняться и отправляться на сервер.

Таким образом, без WebServiceConnector по видимому не обойтись.

Кто-нибудь знает, в принципе есть возможность передавать фотоизображение с помощью данного сервиса или это тупиковый путь?

Спасибо!

wvxvw
18.02.2009, 16:37
Смотри, если так создали - значит плохо подумали перед тем, как создавать :)
И вообще посылать бинарные данные из АС2 - изврат...
Вот, тут человек что-то похожее делал:
http://www.quasimondo.com/archives/000645.php
Но это было еще в эпоху маинфрейма и каменных топоров :)

Да, ты можешь перекодировать ByteArray в строку используя Base64 например, кажется во флексовых утилитах даже есть готовый парсер, но никогда им не пользовался...
То, что возвращает JPEGEncoder.encode() является ByteArray - дописывай к нему что хочешь, просто на сервере нужно будет считать и распарсить. Я думаю, что на Java / C# - это даже проще будет сделать т.как РНР не самый лучший вариант для работы с массивами байт, но и на РНР тоже можно.
В моих примерах используется точно такой же механизм, как и с явовскими вебсервисами, разницы с точки зрения Флеша вообще никакой куда посылать, что на amfphp getaway, что жаваовскому сервису.
На сколько я себе это представляю (но я это себе плохо представляю, т.как никогда с этим не работал) BlazeDS - это то, что нужно для обмена данными с флешкой используя AMF сериализацию.

dojd
18.02.2009, 22:57
Столкнулся с той же проблемой.
Разработчики серверной части указывают сделать пересылку фотографии банарными данными в аттаче soap. Как это сделать не знаю, поэтому склоняюсь к передаче в base64 прямо в xml-ке.

wvxvw
19.02.2009, 00:50
Что это за разработчики !@ъ$%^&*() такие? SOAP это XML, как они себе представляют писать туда бинарные данные?
И вообще, это плохое планирование и непонимание возможностей - дают же нормальный способ пересылать бинарные данные + библиотеки по работе с ними... AMF бек-енд есть на Java, C#, PHP и Python (возможно CF и Ruby) - показать "разработчикам" мануал и не парить себе мозги с Base64 :)
Java - BlazeDS / GDS
C# - FluorineFX
PHP - AMFPHP / ZendAMF / SabreAMF (в Drupal тоже есть какая-то имплементация, но я не знаю какая)
Python - PyAMF
И еще даж кажется что-то для Ruby и CF есть, но я просто не знаю...