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,
));
}
<?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("ext.EAjaxUpload.qqFileUploader");
$folder=$_SERVER['DOCUMENT_ROOT'].Yii::app()->request->baseUrl.'/upload/';// folder for uploaded files
$allowedExtensions = array("csv");
$sizeLimit = (int)Yii::app()->params['sizeLimit'];// maximum file size in bytes
$uploader = new qqFileUploader($allowedExtensions, $sizeLimit);
$result = $uploader->handleUpload($folder,true);
$row = 0;
if (($handle = fopen($folder.$uploader->file->getName(), "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
if ($row>0) {
$model=Bloodtype::model()->findByPk((int)$data[0]);
if ($model=== null) {
$model = new Bloodtype();
}
$model->bloodtypeid = (int)$data[0];
$model->bloodtypename = $data[1];
$model->recordstatus = (int)$data[2];
try
{
if(!$model->save())
{
$errormessage=$model->getErrors();
if (Yii::app()->request->isAjaxRequest)
{
echo CJSON::encode(array(
'status'=>'failure',
'div'=>$errormessage
));
}
}
}
catch (Exception $e)
{
$errormessage=$e->getMessage();
if (Yii::app()->request->isAjaxRequest)
{
echo CJSON::encode(array(
'status'=>'failure',
'div'=>$errormessage
));
}
}
}
$row++;
}
fclose($handle);
}
$result=htmlspecialchars(json_encode($result), ENT_NOQUOTES);
echo $result;