Cara Membuat Upload File Gambar dengan PHP dan MySQL

Cara Upload Gambar dengan PHP dan MySQL
Cara Membuat Upload Gambar dengan PHP dan MySQL - Beberapa hari yang lalu ada seseorang yang me-request tutorial tentang Mengupload Gambar di PHP. Dari yang saya baca, ada beberapa teknik untuk melakukan upload gambar di pemrograman PHP. Namun, teknik yang akan saya gunakan kali ini adalah upload gambar dengan memindahkan (meng-copy) gambar ke direktori yang kita tuju dan nama file gambar yang kita upload kita simpan di dalam Database. Pada teknik ini saya menggunakan fungsi move_uploaded_file().

  1. Pertama, silakan teman-teman buat databasenya terlebih dahulu.
  2. Buat tabel dengan query berikut:
    CREATE TABLE `data_gambar` (
      `id` int(11) NOT NULL,
      `nama_file` varchar(20) NOT NULL,
      `keterangan` text
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    ALTER TABLE `data_gambar`
      ADD PRIMARY KEY (`id`);
    ALTER TABLE `data_gambar`
      MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
    
  3. Simpan script berikut dengan nama koneksi.php dan ubah sesuai pengaturan database teman-teman.
    <?php
    # PENGATURAN DATABASE
    $database['host'] = 'localhost'; //hostname
    $database['user'] = 'root'; //user database
    $database['password'] = '1234'; //password database
    $database['dbname'] = 'kangsunu_imageupload'; //nama database
    
    $koneksi = mysqli_connect($database['host'], $database['user'], $database['password'], $database['dbname']); //membuat koneksi
    if (mysqli_connect_errno()) {
     trigger_error('Koneksi ke database gagal: '  . mysqli_connect_error(), E_USER_ERROR); // Jika koneksi gagal
    }
    ?>
    
  4. Simpan script berikut dengan nama proses_upload.php
    <?php
    $message  = '';
    $valid_file  = true;
    $max_size  = 1024000; // Ukuran maksimal file yang akan diupload (dalam byte)
    
    
    if($_FILES['photo']['name']){
     // if no errors...
     if(!$_FILES['photo']['error']){
    
      // now is the time to modify the future file name and validate the file
      $new_file_name = strtolower($_FILES['photo']['tmp_name']); //rename file menjadi huruf kecil
      if($_FILES['photo']['size'] > $max_size) //file tidak boleh lebih besar dari ukuran maksimal
      {
       $valid_file = false;
       $message = 'Maaf, file terlalu besar. Max: 1MB';
      }
     
    
    
      // Mengatur format file yang boleh diupload
      $image_path = pathinfo($_FILES['photo']['name'],PATHINFO_EXTENSION); //ambil extensi file
      $extension = strtolower($image_path); //rename extensi file menjadi huruf kecil
    
      if($extension != "jpg" && $extension != "jpeg" && $extension != "png" && $extension != "gif" ) {
       $valid_file = false;
       $message = "Maaf, file yang diijinkan hanya format JPG, JPEG, PNG & GIF. #".$extension;
      }
    
    
    
      // jika file lolos filter
      if($valid_file == true)
      {
       // mengganti nama gambar
       $rename_nama_file = date('YmdHis');
       $nama_file_baru  = $rename_nama_file.'.'.$extension;
    
    
       // simpan ke database
       $sql = "INSERT INTO data_gambar VALUES(null, '$nama_file_baru', '$keterangan')";
       if (!mysqli_query($koneksi, $sql)) {
        echo "Error: ".mysqli_error($koneksi)."<br>";
        die('. Gagal mengupload gambar.');
       }
    
       //memindahkan gambar ke tempat yang kita inginkan
       move_uploaded_file($_FILES['photo']['tmp_name'], 'data_gambar/'.$nama_file_baru);
       $message = 'Gambar berhasil diupload!';
       die($message);
      }
     }
     //if there is an error...
     else
     {
      //set that to be the returned message
      $message = 'Ooops!  Your upload triggered the following error:  '.$_FILES['photo']['error'];
     }
    }
    ?>
    
  5. Ini kode HTML-nya, simpan dengan nama index.php
    <?php
    include 'koneksi.php';
    $message = '';
    if (isset($_POST['upload'])) {
     $keterangan = $_POST['keterangan'];
     require_once('proses_upload.php');
    }
    ?>
    <!DOCTYPE html>
    <html>
    <head>
     <title>Upload Gambar Sederhana by KangSunu</title>
    </head>
    <body>
    <?php echo $message; ?>
    
    <form action="" method="post" enctype="multipart/form-data" accept="image/jpg">
     <label>Pilih gambar</label>
     <input type="file" name="photo" required>
     <br>
     <label>Keterangan</label>
     <textarea type="text" name="keterangan"></textarea>
     <br>
     <button type="submit" name="upload">Upload</button>
    </form>
    </body>
    </html>
    
  6. Tambahkan sebuah direktori dengan nama data_gambar
Nah, tutorial tentang Cara Mengupload gambar dengan fungsi move_to_upload() di PHP sudah selesai, silakan teman-teman bisa mencoba script di atas.
Teman-teman juga bisa mendownload script di-atas dibawah ini. Jadi teman-teman tidak perlu repot-repot meng-copy-paste script di atas.

DOWNLOAD SCRIPT UPLOAD GAMBAR DENGAN PHP DAN MYSQL

Tutorial upload file gambar ini juga bisa digunakan untuk format lainnya, kita hanya mengubah filter file apa saja yang bisa kita upload pada file proses_upload.php.

Kang Sunu

Terimakasih telah membaca tulisan saya yang berjudul Cara Membuat Upload File Gambar dengan PHP dan MySQL. Mohon untuk tidak menyalin sebagian atau seluruh isi dari tulisan pada halaman ini tanpa izin dari saya dan tanpa mencantumkan link aktif ke url http://www.kangsunu.web.id/2016/06/cara-membuat-upload-file-gambar-dengan-php-dan-mysql.html.
Terimakasih untuk teman-teman yang telah menghargai tulisan saya.

3 Responses to "Cara Membuat Upload File Gambar dengan PHP dan MySQL"

  1. This comment has been removed by the author.

    ReplyDelete
    Replies
    1. bisa dicantumkan source-codenya mas?
      siapa tahu ada teman-teman lain ada yang bisa ikut membantu. terimakasih.

      Delete
  2. makasih banyak kang sudah bisa terupload. tapi ada data nama barang, harga, sama stok yg tidak bisa masuk ke dalam database

    ReplyDelete