Hi,
I’m a new to yii, so I was following this tutorial.
when I try to upload picture it reports empty field even if it is not.
my _form view:
[font="Courier New"]<div class="form">
<?php $form=$this->beginWidget(‘CActiveForm’, array(
'id'=>'picture-form',
'enableAjaxValidation'=>false,
'htmlOptions' => array('enctype' => 'multipart/form-data'),
)); ?>
…
<div class="row">
<?php echo $form->labelEx($model,'path_to'); ?>
<?php echo $form->fileField($model,'path_to'); ?>
<?php echo $form->error($model,'path_to'); ?>
</div>
…
<?php $this->endWidget(); ?>
</div><!-- form -->
[/font]
and here is my action method:
[font="Courier New"] public function actionCreate()
{
$model=new Picture;
if(isset($_POST['Picture']))
{
$model->attributes=$_POST['Picture'];
$model->picture=CUploadedFile::getInstance($model,'path_to');
if($model->save()){
$log->lwrite('in save'.$model->picture);
$model->picture->saveAs(Yii::app()->basePath.'/../images/'.$model->picture);
$this->redirect(array('view','id'=>$model->id));
$log->lclose();
}
}
$this->render('create',array(
'model'=>$model,
));
}[/font]
when I print_r($_FILES) everything what should be there is there
when I print_r($_POST) the field ‘path_to’ is empty and the validator probably is picking that one.
I’m probably missing something here and I’m clueless.
update:
I’ve noticed yii is using hidden field with the same name as file input, than attributes are read from $_POST, which is causing the engine reading empty hidden field.
I understand that the hidden field is there for update when user is not entering new picture.
Can anyone advice what is the best way of doing picture upload?
Best!