Немогу никак разобраться с загрузкой через AJAX. Обычным способом (без аякса) все работает. Пытаюсь сделать так:
форма:
<?=CHtml::form(Yii::app()->request->baseUrl.'/user/uploadAvatar','post',array('enctype'=>'multipart/form-data')); ?> <?=CHtml::activeHiddenField($user->avatar,'ownerID')?> <?=CHtml::activeFileField($user->avatar, 'image'); ?> <? echo CHtml::ajaxSubmitButton('Обработать', Yii::app()->request->baseUrl.'/user/UploadAvatar', array( 'type' => 'POST', 'update' => '#avatar_respond', )); ?> </form> <div id="avatar_respond"> </div>
ф-ия контролера:
function actionUploadAvatar() { $avatar = new Avatar; if(isset($_POST['Avatar'])) { $avatar->attributes = $_POST['Avatar']; $avatar->scenario = "upload"; $file = CUploadedFile::getInstance($avatar,'image'); if($avatar->save()) { $avatar->file = time().''.$file; $avatar->save(); $file->saveAs('images/userpics/'.time().''.$file); echo "загружено"; } } }
По нажатии сабмита - никакой реакции
Делаю print_r пост-массива - получаю: Array ( [ownerID] => 1 [image] => ).
Ощущение, что аякс не передает файлов, только значения полей.