![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
1. Запись в БД (тут все ок)
Есть обьект polygones (это полигон гуглмапа) пишу его в ByteArray потом сжимаю var bytes:ByteArray = new ByteArray(); bytes.writeObject({polygones: ukr.polygones[1]}); bytes.position = 0; bytes.compress(); // объект класса с помощью которого мы пердадим файл и данные на пхп файл var url_request:URLRequest = new URLRequest(); // указываем адресс куда будут передаватся данные url_request.url = "http://localhost/gmap_upload/index.php"; // устанавливаем метод отправки POST url_request.method = URLRequestMethod.POST; url_request.data = new URLVariables(); url_request.data.polygon = bytes; navigateToURL(url_request);
вроди как все норм записывает. 2. Чтение с БД (тут проблемы) В пхп выборка так идет так:
Потом Флексом читаю это строку, с помощью HTTPService o_https = new HTTPService(); o_https.method = "POST"; o_https.url = "http://localhost/gmap_upload/getpolygon.php"; o_https.useProxy = false; o_https.resultFormat = "object"; // ивенты на удачу и неудачу o_https.addEventListener(ResultEvent.RESULT, resultPhp); o_https.addEventListener(FaultEvent.FAULT, faultPhp); private function resultPhp(event:Event):void { //var s_xml:String = o_https.lastResult.toString(); var base64Dec:Base64Decoder; var byteArr:ByteArray; base64Dec = new Base64Decoder(); base64Dec.decode(o_https.lastResult.toString()); byteArr = base64Dec.toByteArray(); m_function(byteArr); } Error: Error #2058: Ошибка при распаковке данных. at flash.utils::ByteArray/_uncompress() at flash.utils::ByteArray/uncompress() at map/xxx()[C:\Documents and Settings\Serj\My Documents\Flex Builder 3\map\src\map.mxml:80] Т.е. я так понимаю я как-то не правильно получил эти данные... Может предложите другой способ чтения BLOB из MySQL в Флекс - ByteArray |
|
|||||
|
некрофил
Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
|
Я могу ошибаться, но по-моему объект типа байт-массив не стоит передавать через переменные (пусть даже и) POST-запроса. Урлэнкодинг и всякая хрень, в ПХП может придти совсем не то же самое, что было в исходном байт-массиве.
Я пересылаю бинарные данные, напрямую присваивая ссылку на байт-массив свойству URLRequest.data, а в ПХП читаю присланное так: Т.е. ошибка может возникать не на этапе чтения из БД, а как раз на этапе записи в неё.
__________________
...убивать людей не удовольствия ради, но для еды. |
|
|||||
|
Спасибо за ответы, но хочу уточнить.
DeliMIter, немного не понял, что даешь на вход этой функции file_get_contents, я почитал там должен быть или урл на файл или путь к локальному. wvxvw это при чтении? с записью все ок? |
|
|||||
|
некрофил
Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
|
А надо было ещё и прочитать, что такое php://input. Первая ссылка в гугле же:
http://us2.php.net/manual/en/wrappers.php.php
__________________
...убивать людей не удовольствия ради, но для еды. |
|
|||||
|
Спасибо, за подсказки, переписал код, проверил размер отправляемого байт массива и получаемого - размеры совпали.
Но тут другая тема. когда заганяю полигон в ByteArray. а потом пытаюсь его прочитать, то компилятор ругается, TypeError: Error #1034: Ошибка типа Coercion: невозможно преобразовать Object@137c6151 в com.google.maps.overlays.Polygon. at map/onReady()[C:\Documents and Settings\Serj\My Documents\Flex Builder 3\map\src\map.mxml:62] Добавлено через 46 минут значит погуглил я и нашел вот такое http://richapps.de/?p=34 читать с камментами суть в том, что после преобразований с бинарным массивом теряется вся информация про класс, доктор выписал пилюлю в виде registerClassAlias("de.benz.something", Test); но и это не спасает т.к. в случае когда в контструкторе класса есть входящие переменные, то получаем еррор аля "ArgumentError: Error #1063: Несоответствие количества аргументов в com.google.maps.overlays::Polygon(). Ожидалось 1, получено 0." Последний раз редактировалось CblP; 15.07.2009 в 17:19. |
![]() |
![]() |
Часовой пояс GMT +4, время: 10:24. |
|
|
« Предыдущая тема | Следующая тема » |
|
|