Quantcast
Channel: Yii Framework Forum
Viewing all articles
Browse latest Browse all 18717

How To Upload Files with CUploadedFile class in CRUD interface

$
0
0
THE CONTROLLER


-> function create:

	public function actionCreate()
	{
		$model=new Fotos2;

		// Uncomment the following line if AJAX validation is needed
		 $this->performAjaxValidation($model);

		if(isset($_POST['Fotos2']))
		{
			$model->attributes=$_POST['Fotos2'];
                        $model->url=CUploadedFile::getInstance($model,'url');
                        $fecha = date('YmdHms');
                        $model->url->saveAs(Yii::app()->basePath.'/../images/uploads/'.$fecha.'_'.$model->url);
                        $model->url = $fecha.'_'.$model->url;                        
			if($model->save())
				$this->redirect(array('view','id'=>$model->id));
		}

		$this->render('create',array(
			'model'=>$model,
		));
	}


->function update:

	public function actionUpdate($id)
	{
		$model=$this->loadModel($id);

		// Uncomment the following line if AJAX validation is needed
		// $this->performAjaxValidation($model);

		if(isset($_POST['Fotos2']))
		{
			$model->attributes=$_POST['Fotos2'];
                        
                        $model->url=CUploadedFile::getInstance($model,'url');
                        $fecha = date('YmdHms');                        
                        
                        if ( (is_object($model->url) && get_class($model->url)==='CUploadedFile')) {
                            $model->url->saveAs(Yii::app()->basePath.'/../images/uploads/'.$fecha.'_'.$model->url);                        
                            $model->url = $fecha.'_'.$model->url;
                        }
                                                                                                                            
			if($model->save())
				$this->redirect(array('view','id'=>$model->id));
		}

		$this->render('update',array(
			'model'=>$model,
		));
	}



MODEL

Declare the public property url (the name of my upload file input)
class Fotos2 extends CActiveRecord
{
    
        public $url;
	/**
	 * Returns the static model of the specified AR class.
	 * @return Fotos2 the static model class
....


in the public function rules, add this array:

...
array('url', 'unsafe'), //in order to can update the record without upload the file again when is not necessary
array('url', 'file', 'types'=>'jpg, gif, png'),  //validate the file extension



THE VIEW _FORM

<div class="form">

<?php $form=$this->beginWidget('CActiveForm', array(
	'id'=>'fotos2-form',
	'enableAjaxValidation'=>true,
        'htmlOptions'=>array('enctype'=>'multipart/form-data'),
)); ?>

	<p class="note">Fields with <span class="required">*</span> are required.</p>

	<?php echo $form->errorSummary($model); ?>

	<div class="row">
		<?php echo $form->labelEx($model,'nombre'); ?>
		<?php echo $form->textField($model,'nombre',array('size'=>50,'maxlength'=>50)); ?>
		<?php echo $form->error($model,'nombre'); ?>
	</div>

	<div class="row">
		<?php echo $form->labelEx($model,'url'); ?>
		<?php echo $form->fileField($model,'url',array('size'=>60,'maxlength'=>255)); ?>
		<?php echo $form->error($model,'url'); ?>
	</div>

	<div class="row buttons">
		<?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?>
	</div>

<?php $this->endWidget(); ?>

</div>&lt!-- form -->


I hope this guide help son want who are getting error like "the filexx cannot be blank"

Viewing all articles
Browse latest Browse all 18717

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>