![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Sep 2008
Сообщений: 14
|
Доброго времени суток!
Извините, если частично повторяюсь, но я не нашел ответа на свой вопрос с помощью поиска... Мне нужно передать картинку и 2 тектовых параметра серверному скрипту одним запросом или несколькими, главное, чтоб это работало! По отдельности это работает хорошо, а вместе доходит только картинка... Код передачи картинки: var png_image_data:ByteArray = PNGEncoder.encode(data_bmp); var url:String = "/getfromflash.php"; var request:URLRequest = new URLRequest(url); request.data = png_image_data; request.method = URLRequestMethod.POST; request.contentType = 'application/octet-stream'; navigateToURL(request); var url:String = "/getfromflash.php"; var request:URLRequest = new URLRequest(url); var variables:URLVariables = new URLVariables(); variables.email1 = "blabla1@mail.com"; variables.email2 = "blabla2@mail.com"; request.data = variables; request.method = URLRequestMethod.POST; navigateToURL(request); |
|
|||||
|
Регистрация: Jun 2007
Сообщений: 374
|
Закодить картинку в base64.
|
|
|||||
|
стервочка (я мужик)
|
s8000_1, зачем? картинка же доходит.
|
|
|||||
|
Регистрация: Sep 2008
Сообщений: 14
|
А все вместе я выполняю следующим образом:
var url:String = "/getfromflash.php"; var request:URLRequest = new URLRequest(url); var variables:URLVariables = new URLVariables(); variables.email1 = "blabla1@mail.com"; variables.email2 = "blabla2@mail.com"; request.data = variables; request.method = URLRequestMethod.POST; navigateToURL(request); var png_image_data:ByteArray = PNGEncoder.encode(data_bmp); request.data = png_image_data; request.contentType = 'application/octet-stream'; navigateToURL(request); Добавлено через 8 минут Хотя это идея, закодить в строку картинку и передать параметром... Спасибо, s8000_1, попробую! |
|
|||||
|
стервочка (я мужик)
|
dFlasher, не слушайте s8000_1, это бред. у вас ошибка тут:
нельзя что бы свойство data было одновременно и тем и тем. отправляйте переменные гетом. что-то типа
|
|
|||||
|
Цитата:
var request:URLRequest = new URLRequest("http://www.dnadillo.dn.ua/CONTENT_PATH/upload.php?txt=TextПосылаемый&txt2=ПОСЛАНИЕ2&d="+new Date().getTime());
var loader: URLLoader = new URLLoader();
var ba:ByteArray = new ByteArray;
var i:int;
for (i=0; i<10; i++) {
ba.writeUTFBytes(" Имитатор картинки; ");
}
request.contentType = 'application/octet-stream';
request.data = ba;
request.method = URLRequestMethod.POST;
request.contentType = 'application/octet-stream';
loader.dataFormat= URLLoaderDataFormat.BINARY;
loader.load(request);
loader.addEventListener(Event.COMPLETE,completeHandler);
function completeHandler(event:Event):void {
trace(loader.data);
}
<?php echo print_r($GLOBALS); echo ' отдельный вывод переменной txt '.$_GET['txt']; echo ' отдельный вывод переменной txt2 '.$_GET['txt2']; echo ' oтдельный вывод переменной d '.$_GET['d']; ?> Array
(
[GLOBALS] => Array
*RECURSION*
[HTTP_RAW_POST_DATA] => Имитатор картинки; Имитатор картинки; Имитатор картинки; Имитатор картинки; Имитатор картинки; Имитатор картинки; Имитатор картинки; Имитатор картинки; Имитатор картинки; Имитатор картинки;
[_POST] => Array
(
)
[_GET] => Array
(
[txt] => Text
[txt2] => 2
[d] => 1233344463634
)
[_COOKIE] => Array
(
)
[_FILES] => Array
(
)
)
1 отдельный вывод переменной txt Text отдельный вывод переменной txt2 2 oтдельный вывод переменной d 1233344463634
|
|
|||||
|
Регистрация: Sep 2008
Сообщений: 14
|
Я не думаю, что это ошибка. Когда я переопределяю свойство data, то первая порция данных уже должна быть отправлена. Даже, если я заведу отдельный экземпляр класса URLRequest, то результат будет тот же... тут ошибка не в этом.
А проблема действительно решилась после конвертирования ByteArray в String c помощью Base64 и передачей картинки через variables, как и остальных параметров. Спасибо! |
|
|||||
|
Регистрация: Jun 2007
Сообщений: 374
|
BlooDHounD, GET это GET, просто как я понял, вопрос-то в том, как POSTом отправить одновременно и картинку, и текст.
Я другого простого способа не знаю, кроме как превратить картинку в строку... |
|
|||||
|
4AM Games
|
@dFlasher
Вы отправляете два разных запроса, если хотите одним, то нужно либо послать пост Base64 и остальные данные, как говорит s8000_1, но это каменный век. Или послать картинку POST, а остальные данные GET'ом, как собственно BloodHound и советует.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
Регистрация: Jun 2007
Сообщений: 374
|
Nirth, почему каменный век? В гет не запихнешь текстовое поле размером 2кб + геты в броузерах глючат (если, например, верхний/нижний регистр использовать)
|
![]() |
![]() |
Часовой пояс GMT +4, время: 20:45. |
|
|
« Предыдущая тема | Следующая тема » |
|
|