Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 26.12.2011, 11:18
Владимир Буквин вне форума Посмотреть профиль Отправить личное сообщение для Владимир Буквин Найти все сообщения от Владимир Буквин
  № 1  
Ответить с цитированием
Владимир Буквин
 
Аватар для Владимир Буквин

Регистрация: Aug 2011
Сообщений: 103
По умолчанию Отправка битовых данных на сервер

Задача состоит в том, чтобы отправить на сервер объект с двумя полями.
первое имеет строковый тип, второе - картинка.
если делаю так
Код AS3:
var urlLoader:URLLoader = new URLLoader();	
var request:URLRequest = new URLRequest();
var data:URLVariables = new URLVariables();
data.url = uploadURL;
data.photo = urlRequest.data;//содержит картинку
request.data = data;	
request.url = MY_URL;	
request.method = URLRequestMethod.POST;				
urlLoader.load(request);
то отправляется запрос, в котором картинка преобразуется в строку
Код AS3:
data.photo
, причем данные урезаются
Как можно отправить два объекта, один из которых содержит увесистые битовые данные?

Старый 26.12.2011, 11:23
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 2  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Для бинарных данных нужно использовать
Код AS3:
URLLoaderDataFormat.BINARY;

Старый 26.12.2011, 11:38
Владимир Буквин вне форума Посмотреть профиль Отправить личное сообщение для Владимир Буквин Найти все сообщения от Владимир Буквин
  № 3  
Ответить с цитированием
Владимир Буквин
 
Аватар для Владимир Буквин

Регистрация: Aug 2011
Сообщений: 103
добавил
Код AS3:
urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
перед
Код AS3:
urlLoader.load(request);
не помогло

Добавлено через 2 минуты
потом распечатал
Код AS3:
request.data
используя trace - файл печатается весь, зато отправка все равно урезанная. может там максимальный размер данных есть?

Добавлено через 42 минуты
при отправке отрезается часть и остается:
--yottijtmtbrsewjrkvoykbbhdlaeecyy
Content-Disposition: form-data; name="Filename"
photo.png
--yottijtmtbrsewjrkvoykbbhdlaeecyy
Content-Disposition: form-data; name="photo"; filename="photo.png"
Content-Type: application/octet-stream
ÿØÿà

вот кусок части который обрезался
JFIFHHÿáExifMM*bj(1r2އi¤Ð
ü€'
ü€'Adobe Photoshop CS2 Windows2010:09:09 17:20:28**‚*‚&(.ÒHHÿØÿàJFIFHHÿí
Adobe_CMÿîAdobed€ÿÛ„

и то здесь не отображаются некоторые символы


Последний раз редактировалось iNils; 26.12.2011 в 14:11.
Старый 26.12.2011, 12:31
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 4  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
Цитата:
Сообщение от Владимир Буквин Посмотреть сообщение
зато отправка все равно урезанная.
Смотрелось чем? Есть подозрение, что приемка данных на сервере неправильная. Или в сниффере http-траффика видно, что отправка идет не до конца?

Старый 26.12.2011, 12:46
Владимир Буквин вне форума Посмотреть профиль Отправить личное сообщение для Владимир Буквин Найти все сообщения от Владимир Буквин
  № 5  
Ответить с цитированием
Владимир Буквин
 
Аватар для Владимир Буквин

Регистрация: Aug 2011
Сообщений: 103
через charles смотрел. количество байт должно было отправиться 64 кб, а отправилось примерно 1.5 кб

Старый 26.12.2011, 13:22
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 6  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
MultipartData вам в помощь..

Код AS3:
urlLoader.dataFormat = URLLoaderDataFormat.BINARY
это указание для лоадера а не отправляемых данных..."понимать" формат должен серверный скрипт
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 26.12.2011, 13:22
Genzo вне форума Посмотреть профиль Отправить личное сообщение для Genzo Посетить домашнюю страницу Genzo Найти все сообщения от Genzo
  № 7  
Ответить с цитированием
Genzo
 
Аватар для Genzo

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
Имхо, может имеет смысл использовать Base64?
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

Старый 26.12.2011, 13:24
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 8  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
Цитата:
Сообщение от Владимир Буквин Посмотреть сообщение
Количество байт должно было отправиться 64 кб, а отправилось примерно 1.5 кб
1.5 Кб - это характерное число. На чем сервер? Приведите фрагмент серверного кода, получающий данные? Указанный объем косвенно подтверждает неверный код приема данных на сервере (сервер слишком рано отправляет ответ и закрывает соединение, не вычитав все).

Старый 26.12.2011, 14:30
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 9  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
Base64 в эпоху нанотехнологий и третьего АС как то не по феншую )
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 26.12.2011, 15:08
Владимир Буквин вне форума Посмотреть профиль Отправить личное сообщение для Владимир Буквин Найти все сообщения от Владимир Буквин
  № 10  
Ответить с цитированием
Владимир Буквин
 
Аватар для Владимир Буквин

Регистрация: Aug 2011
Сообщений: 103
Цитата:
Сообщение от cleptoman Посмотреть сообщение
MultipartData вам в помощь..

Код AS3:
urlLoader.dataFormat = URLLoaderDataFormat.BINARY
это указание для лоадера а не отправляемых данных..."понимать" формат должен серверный скрипт
Здесь multipartURLLoader не поможет, тут политика безопасности не дает, поэтому я свой сервер использую

Добавлено через 3 минуты
Цитата:
Сообщение от maxkar Посмотреть сообщение
1.5 Кб - это характерное число. На чем сервер? Приведите фрагмент серверного кода, получающий данные? Указанный объем косвенно подтверждает неверный код приема данных на сервере (сервер слишком рано отправляет ответ и закрывает соединение, не вычитав все).
1.5 это размер запроса в кбайтах. Это я через Charles(перехватчик запросов) посмотрел

Добавлено через 7 минут
разобрался! на сервер отправлял данные в виде строк. преобразовал битовые данные в строку. при этом битовые данные не доходили до сервера целиком, данные урезались на том месте где встречался символ, код которого = 0. Я заменил все такие символы на строку размером в 5 символов, чтоб потом декодировать можно было на сервере

Создать новую тему Ответ Часовой пояс GMT +4, время: 17:40.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 17:40.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.