Upload CSV File

3 0
10
Viewed: 35 571 times
Version: Unknown (update)
Category: Tutorials
    Written by: bhavesh vaghela bhavesh vaghela
    Updated by: bhavesh vaghela bhavesh vaghela
    Created: Jan 9, 2013
    Updated: 11 years ago

    You are viewing revision #3 of this wiki article.
    This is the latest version of this article.
    You may want to see the changes made in this revision.

    « previous (#2)

    View file

           $form=$this->beginWidget('CActiveForm', array(
            'id'=>'registration-form',
             'enableAjaxValidation'=>true,
                 'htmlOptions' => array('enctype' => 'multipart/form-data'),
            )); 
    
             	<div>
    		<?php echo $form->labelEx($model,'csv_file'); ?>
    		<?php echo $form->fileField($model,'csv_file'); ?>
    		<?php echo $form->error($model, 'csv_file'); ?>
    	</div>
    		<hr>
    		<?php  echo CHtml::submitButton('Upload CSV',array("class"=>"")); ?>
    		<?php echo $form->errorSummary($model); ?>
    	</div>
    
            $this->endWidget(); 
    

    Model file

                public function rules()
            {
                    array('csv_file',
    	       'file', 'types' => 'csv',
    	       'maxSize'=>5242880,
    	       'allowEmpty' => true,
    	       'wrongType'=>'Only csv allowed.',
    	       'tooLarge'=>'File too large! 5MB is the limit'),
              }
              public function attributeLabels()
          {
                  'csv_file'=>'Upload CSV File',
              }
    

    Controller file

    public function actionImport() {

    	$model = new Registration;
    	//$file = CUploadedFile::getInstance($model,'csv_file');
    	if(isset($_POST['Registration']))
    	{
    		$model->attributes=$_POST['Registration'];
    		if(!empty($_FILES['Registration']['tmp_name']['csv_file']))
    		{
    			$file = CUploadedFile::getInstance($model,'csv_file');
    			
    
    			$fp = fopen($file->tempName, 'r');
    			if($fp)
    			{
    				//	$line = fgetcsv($fp, 1000, ",");
    				//	print_r($line); exit;
    				$first_time = true;
    			 do {
    			 	if ($first_time == true) {
    			 		$first_time = false;
    			 		continue;
    			 	}
    					$model = new Registration;
    					$model->firstname = $line[0];
    					$model->lastname  = $line[1];
    
    					$model->save();
    
    				}while( ($line = fgetcsv($fp, 1000, ";")) != FALSE);
    				$this->redirect('././index');
    
    			}
    			//    echo	 $content = fread($fp, filesize($file->tempName));
    				
    		}
    
    	}
    
    	$this->render('import', array('model' => $model) );
    
    }