Upload file csv to mysql di yii

gan mau tanya ni , ane pingin upload file tipe csv langsung ke database, tapi yang di upload bukan file nya ,tp data2 dalam file di insert ke tabel yagn sudah disediakan dalam database,

ni controller yang sementara udah ane bikin gan ::




        public function actionUpload(){

            $model = new Temporary;

            

            $file = $_POST['fileupload'];

            

            $this->render('uploadanggaranunit',array(

                'model'=>$model,

            ));

        }




ini modelnya gan :




<div class="row">    

<fieldset style="border: 1px solid #DDD; padding: 8px; font-family: verdana;">

    <legend><b>Upload Anggaran HR</b></legend>

    <table id="table_detail_karyawan">

        

        <?php echo CHtml::beginForm('index.php?r=anggaranPerunit/upload','post'); ?>

        <tr>

            <td>Pilih File</td>

            <td><?php echo CHtml::fileField('fileupload') ?></td>

        </tr>

        <tr>

            <td colspan="2">

                <?php echo CHtml::submitButton('Upload') ?>

            </td>

        </tr>

        <?php CHtml::endForm();?>

    </table>

</fieldset>

</div>




kira gmana ya gan dalam yii ??? misal di dalam file.csv itu ada data : id,nama …

pada saat upload, maka di tabel A bakalan terisi data id,nama sesuai data2 di file yang di upload … mohon bantuaanya ya gan … sanget urgent ni gan …

terima kasih


<?php

$this->widget('ext.EAjaxUpload.EAjaxUpload',

                 array(

                       'id'=>'uploadFile',

                       'config'=>array(

                                       'action'=>'index.php?r=bloodtype/upload',

                                       'allowedExtensions'=>array("csv"),

                                       'sizeLimit'=>(int)Yii::app()->params['sizeLimit'],

									   'onComplete'=>"js:function(id, fileName, responseJSON){ $.fn.yiiGridView.update('datagrid');  }",

                                       'messages'=>array(

                                                         'typeError'=>"{file} has invalid extension. Only {extensions} are allowed.",

                                                         'sizeError'=>"{file} is too large, maximum file size is {sizeLimit}.",

                                                         'minSizeError'=>"{file} is too small, minimum file size is {minSizeLimit}.",

                                                         'emptyError'=>"{file} is empty, please select files again without it.",

                                                         'onLeave'=>"The files are being uploaded, if you leave now the upload will be cancelled."

                                                        ),

                                       'showMessage'=>"js:function(message){ alert(message); }"

                                      )

                      ));

?>

di controller

public function actionUpload()

{


  parent::actionUpload();


  Yii::import(&quot;ext.EAjaxUpload.qqFileUploader&quot;);


  &#036;folder=&#036;_SERVER['DOCUMENT_ROOT'].Yii::app()-&gt;request-&gt;baseUrl.'/upload/';// folder for uploaded files


  &#036;allowedExtensions = array(&quot;csv&quot;);


  &#036;sizeLimit = (int)Yii::app()-&gt;params['sizeLimit'];// maximum file size in bytes


  &#036;uploader = new qqFileUploader(&#036;allowedExtensions, &#036;sizeLimit);


  &#036;result = &#036;uploader-&gt;handleUpload(&#036;folder,true);


  &#036;row = 0;


  if ((&#036;handle = fopen(&#036;folder.&#036;uploader-&gt;file-&gt;getName(), &quot;r&quot;)) &#33;== FALSE) {


	  while ((&#036;data = fgetcsv(&#036;handle, 1000, &quot;,&quot;)) &#33;== FALSE) {


		if (&#036;row&gt;0) {


		  &#036;model=Bloodtype::model()-&gt;findByPk((int)&#036;data[0]);


		  if (&#036;model=== null) {


			&#036;model = new Bloodtype();


		  }


		  &#036;model-&gt;bloodtypeid = (int)&#036;data[0];


		  &#036;model-&gt;bloodtypename = &#036;data[1];


		  &#036;model-&gt;recordstatus = (int)&#036;data[2];


		  try


		  {


			if(&#33;&#036;model-&gt;save())


			{


			  &#036;errormessage=&#036;model-&gt;getErrors();


			  if (Yii::app()-&gt;request-&gt;isAjaxRequest)


			  {


				echo CJSON::encode(array(


				  'status'=&gt;'failure',


				  'div'=&gt;&#036;errormessage


				));


			  }


			}


		  }


		  catch (Exception &#036;e)


		  {


			&#036;errormessage=&#036;e-&gt;getMessage();


			if (Yii::app()-&gt;request-&gt;isAjaxRequest)


			  {


				echo CJSON::encode(array(


				  'status'=&gt;'failure',


				  'div'=&gt;&#036;errormessage


				));


			  }


		  }


		}


		&#036;row++;


	  }


	  fclose(&#036;handle);


  }


  &#036;result=htmlspecialchars(json_encode(&#036;result), ENT_NOQUOTES);


  echo &#036;result;

}

mantap gan… ane bisa ngopi tuh code nya…!