视图文件
$form=$this->beginWidget('CActiveForm', array( 'id'=>'registration-form', 'enableAjaxValidation'=>true, 'htmlOptions' => array('enctype' => 'multipart/form-data'), )); ?> <div > <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>php $this->endWidget(); ?>
模型文件
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', }
控制器文件
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) ); }