Zend_File_Transfer и Zend_ProgressBar - PullRequest
       4

Zend_File_Transfer и Zend_ProgressBar

0 голосов
/ 16 октября 2010

Для отслеживания загрузки больших видеофайлов я использую индикатор выполнения, как показано в демо , которое поставляется с платформой. Загрузка работает нормально, и прогресс отображается правильно.

Однако, поскольку форма нацелена на скрытый iframe, ответ сервера на первоначальный пост-запрос отправляется этому скрытому iframe.

Итак, вот мои вопросы:

  1. Зачем мне в первую очередь предназначаться для iframe?
  2. Как отобразить сообщения об ошибках (недействительные запросы на публикацию) или перенаправления (действительные запросы на публикацию) на исходной странице, а не в (скрытом) фрейме?

Я знаю, что существуют различные сторонние решения для загрузки файлов (uploadify, SWFUpload и т. Д.), Но я хотел попробовать подход на основе Zend Framework.

Помощь очень ценится!

Так долго,
блакс

1 Ответ

1 голос
/ 16 октября 2010

Загрузка - это запрос страницы.Как и любой новый запрос страницы, загрузка останавливает любой активный JavaScript, запущенный на текущей странице.Поскольку вы хотите, чтобы ваш javascript работал, вы делегируете запрос страницы загрузки в iframe, который не останавливает javascript на вашей главной странице.Поэтому, если вы не нацелены на iframe - запрос на загрузку сначала остановит весь javascript, выполняемый на вашей странице, а затем выполнит загрузку.
На самом деле помощник формы просто скрывает новый запрос страницы в iframe для этого.

Чтобы иметь возможность показывать пользовательские ответы и прочее, вы можете либо изменить функцию evalProgress, либо подписаться на событие onload iframe (из javascript pov iframe почти так же, как тег html / body).Например, вы можете подписаться на событие onload, а затем прочитать содержимое iframes с помощью javascript и оценить его (кстати, запросы ajax для сторонних серверов тоже так работают).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...