Проблема с отправкой огромного количества данных с флеш-памяти

У меня проблема с отправкой огромного (~ 4 МБ) блока данных из флеш-памяти на мой сервлет Java, в настоящее время я передаю данные с помощью URLVariables, однако, похоже, для этого есть ограничение (потому что, похоже, он работает с меньшие блоки данных), как мне подавить это ограничение или любым другим способом передать мои данные сервлету.

Мой флеш-код на данный момент:

var variables:URLVariables = new URLVariables();
variables.name = name_string; //Plenty of these small attributes
variables.data = data_string; //And the huge BLOB

var sendReq:URLRequest = new URLRequest("http://localhost:8080/recieve/");
sendReq.method = URLRequestMethod.POST;
sendReq.data = variables;

var sendLoader:URLLoader;
sendLoader = new URLLoader();
sendLoader.addEventListener(Event.COMPLETE, Handler);
sendLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
sendLoader.load(sendReq);

person Skeen    schedule 14.09.2011    source источник
comment
@@ Джон, как мне использовать это для загрузки строки?   -  person Skeen    schedule 14.09.2011
comment
@@ Джон, не могли бы вы опубликовать ответ, показывающий пример кода этого, где data_string - это огромная data_string.   -  person Skeen    schedule 14.09.2011
comment
@@ John, на самом деле это объект BitmapData, который закодирован в строку, я предполагаю, что кодирование может происходить на стороне сервера, если это упростит решение проблемы с отправкой. - Так что, думаю, локальная память SWF.   -  person Skeen    schedule 14.09.2011
comment
позвольте нам продолжить это обсуждение в чате   -  person John Giotta    schedule 14.09.2011


Ответы (4)


Во-первых, все методы POST не работают примерно на 2000+ символов в IE (по крайней мере, до 8).

Далее, есть ограничение на URLLoader: см. Flash / AS3 - есть ли ограничение на количество одновременных запросов URLLoader.load ()?

Если возможно, попробуйте разбить данные на более мелкие части и отправить их таким образом. Это устранит максимум проблем.

person Todd Moses    schedule 14.09.2011
comment
Я думаю, что лимит символов установлен на сервере. - person Amy Blankenship; 15.09.2011
comment
Если да, Эми, как мне изменить это в моем сервлете Java? - person Skeen; 15.09.2011

Изучив его, я понял, что мое предыдущее предложение FileReference - плохая идея, поскольку BitmapData создается в памяти.

Я предлагаю попробовать Как я могу отправить ByteArray (из Flash) и некоторые данные формы на php?

person John Giotta    schedule 15.09.2011

Итак, поигравшись со вспышкой, я нашел решение;

Я просто разбил data_string на подстроки заданного размера, затем перечислил их и передал каждую из них с помощью URLLoader вместе с part_id.

Затем сбор подстрок выполняется на стороне сервера с помощью part_ids.

person Skeen    schedule 15.09.2011

Это больше похоже на проблему на стороне сервера. Проверьте настройки среды Java и увеличьте максимально допустимый размер POST / запроса.

Решение разбить данные на несколько частей и отправить их по отдельности, вероятно, работает только потому, что каждая часть меньше, чем предел на стороне сервера.

person python1981    schedule 02.05.2014