selamat siang para coders… saya newbie banget di yii nih.
saya lagi buat photo gallery, jadi bisa create event gitu, nah dalam create event bisa langsung unzip file zip yg diupload.
pertanyaan saya, gimana caranya ambil filename dari foto2 tsb lalu dimasukkan ke artibutnya. berikut saya lampirkan tabel nya
|–detail_event–|
id_det_event PK
id_event FK
event_name
event_date
event_venue
img_zip
|–gallery_photo–|
id_galphoto PK
id_det_event FK
path
caption
nah, bagaimana ya cara ambil file name si foto trus masukin ke path, tapi di 1 form di detailevent.
Terima kasihhh semua Mohon bantuaannya
Lampiran
DetailEventController.php
kode pada actionCreate
public function actionCreate()
{
$model=new DetailEvent;
$model2=new GalleryPhoto;
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['DetailEvent'], $_POST['GalleryPhoto']))
{
$model->attributes=$_POST['DetailEvent'];
$model2->attributes=$_POST['GalleryPhoto'];
$valid=$model->validate();
$valid=$model2->validate() && $valid;
if($valid)
{
$model->img_zip=CUploadedFile::getInstance($model,'img_zip');
if($model->save(false))
$model->img_zip->saveAs(Yii::app()->basePath .'/../images/zip/' . $model->event_name.'.zip');
$this->unzip_file("images/zip/$model->event_name.zip" , $model->event_name);
//$model->save(false);
$model2->id_det_event=$model->id_det_event;
$model2->save(false);
$this->redirect(array('view','id'=>$model->id_det_event));
}
}
$this->render('create',array(
'model'=>$model,
'model2'=>$model2,
));
}
kode pada action unzip
function unzip_file($file, $event){
// create object
$zip = new ZipArchive() ;
$model = new DetailEvent;
$model2 = new GalleryPhoto;
$newfolder = $model->event_name;
$destination = ('images/gallery/'.$event. '/') ;
// open archive
if ($zip->open($file) !== TRUE)
{
die ('Could not open archive:' .$file);
}
else
{
for($i=0; $i<$zip->numFiles; $i++)
{
$model2->path = $zip->getNameIndex($i);
}
}
// extract contents to destination directory
$zip->extractTo($destination);
// close archive
$zip->close();
}
pada kode di atas tidak terjadi apa2… bagaimana ya solusinya? terima kasih