Отправка файлов через AJAX

В общем с Yii я знаком где-то вторую неделю, потому сори, если пост подобного содержания является бредом. Я пока еще не особо вник в философию Yii)

Мне в моем проектике нужно было сделать загрузку файлов через AJAX. На сегоднешний день, как я понял, самый адекватный способ реализации подобного - Iframe транспорт и еще как я понял в Yii нету встроенного функционала для реализации этой задачи (исправьте меня, если я не прав). Потому я настрочил этот кусок кода сам.

Следующая задача, которая появилась - это как сделать обновление формы после ее отправки через iframe, а именно обновления поля загрузки файла (так как файл загружен, поле нужно убрать, а вместо него показать картинку файла).

Собственно говоря здесь есть два варианта:

  • выдавать в ответе JS скрипт, который будет редактировать DOM структуру

  • выдавать полностью готовый вид формы (renderPartial)

второй вариант мне показался более правильным, так как в первом варианте (хоть он и проще) получается, что я пойду против концепции MVC, размещая в контроллере JS. В этом случае правда возникает еще одно неудобство, если использовать CActiveForm, то после обновления формы слетают все ее события валидации. Этого можно было бы избежать, используя присвоение события .on (_api.jquery.com/on/):


$('body').on('click','#submit',function(){});

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

А как бы вы реализовали эту задачу?

P.S. Куда можно настучать по поводу того, что в CActiveForm можно было бы использовать другой способ задания событий? Или лучше вообще никому об этом не говорить?))

http://www.yiiframework.com/extension/eajaxupload/

и куча других на любой вкус. Там поиск есть :)