Form oluştururken dosya yüklemek gereken durumlar oluşabilmekte. Bunun için aşağıdaki düzenlemeleri yaparak istediğimiz formatta dosyaların yüklenebilmesini sağlayabiliriz.
view/ _form
widget içine
‘enableAjaxValidation’=>false,
‘htmlOptions’ => array(
‘enctype’ => ‘multipart/form-data’,
),
…<div class=”row”>
<?php echo $form->labelEx($model,’resimadi’); ?>
<?php echo CHtml::activeFileField($model, ‘resimadi’); ?>
<?php echo $form->error($model,’resimadi’); ?>
</div><?php if(!$model->isNewRecord){ ?>
<div class=”row”>
<?php echo CHtml::image(Yii::app()->request->baseUrl.’/duyurular/’.$model->resimadi,”resimadi”,array(‘style’=>’width:50px;height:50px’));// yüklü olan resmi gösteriyor.
?>
</div>
<?php } ?>
controller/create
$model=new Duyurular;
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);if(isset($_POST[‘Duyurular’]))
{
$model->attributes=$_POST[‘Duyurular’];$rnd = rand(0,9999);
$uploadedFile=CUploadedFile::getInstance($model,’resimadi’);
$fileName = “{$rnd}-{$uploadedFile}”; // random number + file name
$model->resimadi = $fileName;
if($model->save())
{
$uploadedFile->saveAs(Yii::app()->basePath.’/../duyurular/’.$fileName); // image will uplode to rootDirectory/duyurular/
$this->redirect(array(‘view’,’id’=>$model->id));
}
}$this->render(‘create’,array(
‘model’=>$model,
));
controller/update
$model=$this->loadModel($id);
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);if(isset($_POST[‘Duyurular’]))
{
$_POST[‘Duyurular’][‘resimadi’] = $model->resimadi;
$model->attributes=$_POST[‘Duyurular’];$uploadedFile=CUploadedFile::getInstance($model,’resimadi’);
if($model->save()){
if(!empty($uploadedFile)) // check if uploaded file is set or not
{
$uploadedFile->saveAs(Yii::app()->basePath.’/../duyurular/’.$model->resimadi);
}$this->redirect(array(‘view’,’id’=>$model->id));
}}
$this->render(‘update’,array(
‘model’=>$model,
));
model/duyurular
rules içine dosya uzantılarını tanımlamamız gerekmekte.
array(‘resimadi’, ‘file’,’types’=>’jpg, gif, png’, ‘allowEmpty’=>true, ‘on’=>’update’),
İlk Yorumu Siz Yapın