![]() |
Передача ByteArray (картинка) на сервер
Привет всем!
Возникла следующая задача - сохранить картинку JPEG в виде ByteArray на сервере (плюс передать ещё пару переменных). Вот у меня счас так: Код AS3:
может я не то отправляю? может я отправляю ссылку на ByteArray ? подскажите плиз где ошибка) Заранее спасибо откликнувшимся! |
Возможно, вы забыли указать Content-type
Код AS3:
|
1) не передовать текстовые данные (т.е. переменные) и бинарные в одном пакете, они херят друг-друга. Т.е.
req.data = myByteArrayInstance; а не req.data = myObjectInstance; не совсем правда, можно в ByteArray запихнуть и переменные и картинку, но распаковать это придется ручками(тогда смотреть в сторону amf). 2) читать бинарные данные не из $_POST, а из $GLOBALS["HTTP_RAW_POST_DATA"]; ну, вот хороший пример. |
Спасибо за предложения)
ratin, хедеры не помогли) iflamberg, ну повидиму они действительно "херят" друг друга) а жаль) Вобщем на данный момент работает так: Код AS3:
PHP код:
С использованием URLVariables() почему-то не проходит) |
представь себе, что ты через script.php?var1=val&var2=val пытаешься передать бинарные данные(где, в том числе встречаются %,&,? и любые другие символы). Примерно то же самое происходит, когда ты пытаешься передать и картинку и переменные через POST.
Если ты хочешь передать картинку через POST, как переменную, то тебе её нужно закодировать так, как кодируют бинарные данные при передаче по эл. почте, т.е. base64 алгоритмом. Готовые решения base64 легко нагуглить. Другой способ - это сериализовать данные в flash в ByteArray и распаковать их в пхп. Сериализовать: Код AS3:
C zend например так: PHP код:
Короче говоря, выбраный тобой способ - по GET передавать переменные, по POST - бинарник - не самый худший способ. |
iflamberg, да, ты прав) я уже понял что способ неверный) поэтому решил перегонять всё POST`ом, предварительно закодировав ByteArray в base64.
Вот такой получился код: Код AS3:
|
http://designreviver.com/tutorials/a...ges-from-flash
Только там пхп не сохраняет, а выдаёт пользователю рисунок назад. Думаю не проблема его поправить. |
2Rzer:
потрясающе! Ничего, что парень уже решил свои проблемы, а ссылка, что ты привел, приведена мною в посте №3? |
ГГГггг))))))))
Rzer, спасибо за участие))))))) iflamberg, ниругайся) |
С кем не бывает..
|
| Часовой пояс GMT +4, время: 02:28. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.