Получение ошибки в методе FileReference.save - PullRequest
0 голосов
/ 10 января 2012

В настоящее время я работаю во Flex 3.0. Я получаю сообщение об ошибке (снимок экрана приведен ниже).Я использую Flash Player версии 10.0

. В настоящее время я вызываю HTTPService, и в resultHandler этого HTTPService получаю ошибку в методе filereference.save ().потому что этот метод вызывается только при возникновении события MouseEvent или Keyboard.

Есть ли какое-либо решение для преодоления этой ситуации или, другими словами, вызов метода filereference.save в ResultHandler.

enter image description here

Ответы [ 3 ]

5 голосов
/ 10 января 2012

Причина этого в том, что вам больше не разрешается автоматически запускать отображение всплывающих окон сохранения файла, за исключением случая, когда пользователь фактически запрашивает это, через событие, сгенерированное пользователем.Вот еще немного информации по теме: http://www.bogdanmanate.com/2010/05/12/flex-error-2176-when-using-filereference/

Я справился с этой проблемой, используя решение, описанное в посте, а именно, используя предупреждение Да / Нет, чтобы указать пользователю, что файл завершензагрузка, и он готов к загрузке и, наконец, попросив его подтвердить, что он хочет сохранить его локально.Вы можете считать это недружественным для пользователя, но на самом деле это вопрос безопасности.И когда вы знаете, как вызвать событие, вы можете найти способы обойти эту проблему с пользовательским интерфейсом.

Хорошего дня!

1 голос
/ 11 января 2012

Вы не можете. Вам нужно нажать кнопку пользователя, чтобы сделать это. Отправка MouseEvent бесполезна. Роми подход может помочь вам. Но вам нужно по соображениям безопасности сделать это за одно нажатие кнопки.

То, что я сделал .. было в результате получить местоположение файла и открыть его как HTML-страницу. Тогда вы можете скачать его. Я не вижу другого решения, кроме как заставить пользователя нажать кнопку, как сказал Роми.

var u:URLRequest = new URLRequest(event.result); 
navigateToURL(u, "_blank");
0 голосов
/ 10 января 2012

Альтернативное решение может состоять в том, чтобы отправить файл на сервер, а затем отправить его обратно клиенту, который должен вызвать диалоговое окно сохранения / открытия браузера. Но если файл создается с помощью flex, то это не идеальная полоса пропускания.

...