Selasa, 23 Juli 2013
One komentar

Upload gambar dengan kohana PHP



Langkah – langkah dalam mengupload gambar di kohana adalah sebagai berikut :

1.      Pastikan modules Images pada file bootstrap.php sudah di aktifkan. Masuk ke direktori application/bootstrap.php
2.      Langkah selanjutnya adalah membuat  file index.php pada View
Adapun script htmlnya adalah sebagai berikut :
<html>
    <head>
        <title>Upload Avatar</title>
    </head>
    <body>
        <h1>Upload your avatar</h1>
        <form id="upload-form" action="<?= URL::base() . Route::get('default')->uri(array('controller' => 'welcome', 'action' => 'upload')) ?>" method="post" enctype="multipart/form-data">
            <p>Choose file:</p>
            <p><input type="file" name="avatar" id="avatar" /></p>
            <p><input type="submit" name="submit" id="submit" value="Upload" /></p>
        </form>
    </body>
</html>
3.      Selain membuat file index.php, pada View juga dibuat file upload.php, yang isinya adalah :
<html>
    <head>
        <title>Hasil Upload gambar</title>
    </head>
    <body>
        <?php if ($uploaded_file): ?>
        <h1>Upload berhasil</h1>
        <p>
            ini gambar yang kamu upload:
            <?php
            echo '<img src=/uploads/gambar/'.$uploaded_file.'>';
            ?>
        </p>
        <?php else: ?>
        <h1>Upload gagal,ada yang tidak beres</h1>
        <p><?php echo $error_message ?></p>
        <?php endif ?>
    </body>
</html>
4.      Kemudian pada controller buat fungsi berikut ini.
<?php
defined('SYSPATH') or die('No direct script access.');

class Controller_Welcome extends Controller {

    public function action_index() {
        $view = View::factory('avatar/index');
        $this->response->body($view);
    }
   
    public function action_upload() {
        $view = View::factory('avatar/upload');
        $error_message = NULL;
        $filename = NULL;

        if ($this->request->method() == Request::POST) {
            if (isset($_FILES['avatar'])) {
                $filename = $this->_save_image($_FILES['avatar']);
            }
        }

        if (!$filename) {
            $error_message = 'Ada masalah dengan upload gambar.
                Gambar yang di upload harus berformat JPG/PNG/GIF file.';
        }

        $view->uploaded_file = $filename;
        $view->error_message = $error_message;
        $this->response->body($view);
    }

    protected function _save_image($image) {
        if (
                !Upload::valid($image) OR
                !Upload::not_empty($image) OR
                !Upload::type($image, array('jpg', 'jpeg', 'png', 'gif'))) {
            return FALSE;
        }

        $directory = DOCROOT . 'gambar/';

        if ($file = Upload::save($image, NULL, $directory)) {
            $filename = strtolower(Text::random('alnum', 20)) . '.jpg';
            Image::factory($file)
                    ->resize(200, 200, Image::AUTO)
                    ->save($directory . $filename);
            // Delete the temporary file
            unlink($file);

            return $filename;
        }

        return FALSE;
    }

}

// End Welcome
5.      Berikut adalah struktur foldernya.

6.      Sekarang kita coba jalankan pada browser.
Setelah di di upload maka hasilnya akan seperti dibawah ini :
Download file lengkap disini


Video upload image dengan kohana php

 
Toggle Footer
Top