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

File Type Valdiation Not Work

$
0
0
Hi

I created form to upload files , also model to validate types

view :
	.......
	
	<div class="form">
	
	<?php $form=$this->beginWidget('CActiveForm', array(
		'id'=>'Cfiles-form',
		
    	/*
        	'enableAjaxValidation'=>true,
        	'enableClientValidation'=>true,
        	'clientOptions'=>array('validateOnSubmit'=>true), //This is very important
         	
        	*/
        	
        	'clientOptions'=>array('validateOnSubmit'=>true), //This is very important
       	'htmlOptions' => array('enctype' => 'multipart/form-data'),
	
	)); ?>
	
	<?php
	
	/// difine Section model 
	$models=new Courses;
	?>
	
	
	
	<?php echo $form->errorSummary($model,'يرجى تعديل الأخطاء التالية'); ?>
	
	<table>
	<h3> إضافة ملفات الدورات</h3>
	<tr>
		<td>
    		<div class="row">
			<?php echo $form->labelEx($model,'title'); ?>
			<?php echo $form->textField($model,'title',array('size'=>60,'maxlength'=>255)); ?>
			<?php echo $form->error($model,'title'); ?>
		</div>
    	
    	</td>
	</tr>
	<tr>
		<td>
    	
    		<div class="row">
			<?php echo $form->labelEx($model,'desc'); ?>
			<?php echo $form->textField($model,'desc',array('size'=>60,'maxlength'=>600)); ?>
			<?php echo $form->error($model,'desc'); ?>
		</div>
	
    	</td>
	</tr>
	<tr>
		<td>
    	<div class="row">
			<?php echo $form->labelEx($model,'file'); ?>
			<?php echo $form->fileField($model,'file'); ?>
        	الملفات المسموحة : jpg,gif, png,pdf,rar,zip,doc,docx
			<?php echo $form->error($model,'file'); ?>
		</div>
    	</td>
	</tr>
	.......


Model:

  ....
	public function rules()
		{
			// NOTE: you should only define rules for those attributes that
			// will receive user inputs.
			return array(
				array('title, desc,  privacy', 'required','message'=>'يرجى ملئ حقل {attribute}  '),
				array('privacy', 'numerical', 'integerOnly'=>true),
			 	array('title', 'length', 'max'=>255),
			  	array('desc', 'length', 'max'=>600),
            	
             	array('file', 'file', 'types'=>'jpg,gif, png,pdf,rar,zip,doc,docx','allowEmpty'=>true, 'on'=>'update'),
				// The following rule is used by search().
				// Please remove those attributes that should not be searched.
				array('f_id, title, desc, file, privacy', 'safe', 'on'=>'search'),
			);
		}
	
	.....



Controller :


	public function actionCreate()
		{
			$model=new Cfiles;
        	
        	$models= new Courses;
	
			// Uncomment the following line if AJAX validation is needed
		$this->performAjaxValidation($model);
	
			if(isset($_POST['Cfiles']))
			{
			
          	
        	
        		$model->attributes=$_POST['Cfiles'];
            	$valdiate=$model->validate();
            	
            	
         	/////// upload image functions 
       	
         	$rnd = rand(0,999984375);  // generate random number between 0-9999
         	$model->attributes=$_POST['Cfiles']['file'];
       	
      	
            	$uploadedFile=CUploadedFile::getInstance($model,'file');
        	if(!empty($uploadedFile)){
            	$ext=$uploadedFile->getExtensionName();
            	$fileName = "samilox$rnd.{$ext}";  // random number + file name
            	}
            	
            	
             	////////// end 
       	
				if($model->save()){
			
               	
          	
                      	if(!empty($uploadedFile))  // check if uploaded file is set or not
                	{
                 	$uploadedFile->saveAs(Yii::app()->basePath.'/../cfillaf/'.$fileName);  // upload image to server 
                  	$model->file = $fileName;
                  	
                  	$model->save(false);
               	}   
            	
          	
            	
            	
              	echo " Work ";
	
              	
            		$this->redirect(array('cfiles/admin'));
                	
                	
                	}
                	else{
                    	
                    	
                     	
          	echo " error";
              	
            		$this->redirect(array('cfiles/admin'));
                	}
			}
   	
   	
         	$this->layout='adminsidebar';
         	if(Yii::app()->request->getIsAjaxRequest())
          	echo $this->renderPartial('_form',array('model'=>$model),true,true);//This will bring out the view along with its script.
          	
                	else $this->render('create',array(
                        	'model'=>$model,
                	));
	
       	
        	}



If I upload php file or any file will upload in successful way ,
but in model i added files type
just "jpg,gif, png,pdf,rar,zip,doc,docx"

How to fix it ?

Thanks in advance

Viewing all articles
Browse latest Browse all 18717

Trending Articles



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