[Help] Insert Image Into Database

Agan2 n Sista2 sekalian.,ada yang punya referensi buat insert image di database g (g pake $form)?>>Bukan nama gambarnya loh<<

saya lari2 di forum kok g nemu2 yah???Help plizzz :-[


Any answers will be respected <img src='http://www.yiiframework.com/forum/public/style_emoticons/default/rolleyes.gif' class='bbc_emoticon' alt='::)' />

Ada 3 cara nyimpan data image di server,

[list=1]

[*]upload filenya & simpan path-nya di db

[*]upload filenya & ubah jadi string lalu simpan stringnya ke db

[*]upload filenya & baca secara biner lalu simpan ke db

[/list]

cara 1 udah banyak contohnya di forum ini.

jadi saya asumsikan ente nyari cara ke-2 / 3.

proses uploadnya bisa dipecah 3, sisi modelnya, view-nya ama controllernya. untuk 3 cara itu sama semua model ama viewnya, bedanya cuma ngehandle data setelah di server sampe masuk ke dbnya.

modelnya,




class Logo extends CActtiveRecord {

  public $filename;

  public $image;

  ..snip..


  public function rules() {

    ..snip..

    array('image', 'file','types'=>'jpg, gif, png'), 

  }

viewnya,


<?php 

echo CHtml::beginForm('url/controller/action/kemana', 'post', array('enctype'=>'multitype/form-data');

echo CHtml::errorSummary($model);

echo CHtml::activeFieldFile($model, 'image');

echo CHtml::endForm();

controller cara2, (warning: field image di database harus bertipe sekurang2nya text, atau yg lebih besar lagi)


..snip..

  public function actionCreate() {

    $model = new Logo;


    if (isset($_POST['Logo'])) {

      $model->attributes=$_POST['Logo'];

      $logoFile=CUploadedImage::getInstance($model, 'image');


      if (!empty($logoFile)) {

        $model->filename = $logoFile->getName();

        $model->image = base64_encode(file_get_contents($logoFile->getName()));


        if ($model->save())

          $this->redirect(array('view', 'id'=>$model->id));

      }

    }


    $this->render('nama/view/form/upload-nya', array('model'=>$model));

  }

controller cara3, (warning: field image di database harus bertipe blob)


..snip..

  public function actionCreate() {

    $model = new Logo;


    if (isset($_POST['Logo'])) {

      $model->attributes=$_POST['Logo'];

      $logoFile=CUploadedImage::getInstance($model, 'image');


      if (!empty($logoFile)) {

        $model->filename = $logoFile->getName();

        $model->image = file_get_contents($logoFile->getName());


        if ($model->save())

          $this->redirect(array('view', 'id'=>$model->id));

      }

    }


    $this->render('nama/view/form/upload-nya', array('model'=>$model));

  }

semoga bermanfaat,

referensi:

http://www.yiiframework.com/wiki/349/how-to-upload-image-photo-and-path-entry-in-database-with-update-functionality

http://www.yiiframework.com/wiki/95/saving-files-to-a-blob-field-in-the-database/

Nice info gan :)

bdw thanks yah gan…