Please enable JavaScript!
Bitte aktiviere JavaScript!
S'il vous plaît activer JavaScript!
Por favor,activa el JavaScript!
antiblock.org

 |  | 
Anda ingin membuat website?
Untuk Anda yang sedang mencari orang untuk jasa pembuatan website, Saya akan bantu buatkan aplikasi sesuai kebutuhan Anda. Segera hubungi : mail@rizaldimaulidia.com. Selengkapnya tentang profil saya klik www.rizaldimaulidia.com.

PHP

Cara Membuat Upload Gambar dengan PHP dan MySQL

img-responsive

Saya akan coba berbagi bagaimana membuat upload gambar dengan pemograman PHP dan database MySQL. Pada catatan kali ini, saya membatasi gambar yang bisa diuploadnya hanya png dan jpg. Jadi selain gambar png dan jpg, maka nanti akan muncul pesan error. Selain itu, saya juga membatasi ukuran gambar nya yaitu maksimal 1MB. Langsung saja ikuti langkah-langkah berikut ini:

INFO:
Catatan ini sudah saya update. sebelumnya tutorial ini menggunakan MySQL Functions seperti mysql_connect, mysql_query, dan lain-lain. Tapi karena fungsi tersebut sudah deprecated di PHP versi 5.5. jadi telah saya update jadi menggunakan MySQLi Functions seperti mysqli_connect, mysqli_query, dan lain-lain.


DEMO
Sebelum membaca tutorialnya, mungkin ada yang mau lihat demonya terlebih dahulu. Klik link berikut untuk melihat demonya : Lihat Demo.


STEP 1 – PERSIAPAN

  1. Buat sebuah folder dengan nama latihan_upload, lalu simpan pada folder xampp/htdocs/
  2. Buat lagi sebuah folder dengan nama images, lalu simpan di folder xampp/htdocs/latihan_upload/

STEP 2 – DATABASE
Pada step ini, kita akan membuat databasenya. ikuti langkah-langkah berikut ini :

  1. Buat sebuah database dengan nama latihan
  2. Buat sebuah tabel dengan nama gambar. Struktur tabelnya sebagai berikut :
    Struktur Tabel - Cara Membuat Upload Gambar dengan PHP dan MySQL

    CREATE TABLE IF NOT EXISTS `gambar` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `nama` varchar(100) NOT NULL,
      `ukuran` int(11) NOT NULL,
      `tipe` varchar(20) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

STEP 3 – BUAT KONEKSI DATABASE
Pada step ini, kita akan membuat file koneksi.php yang berfungsi untuk menghubungkan dengan database MySQL. Simpan pada folder xampp/htdocs/latihan_upload/. Berikut ini kodenya :

<?php
$host = "localhost"; // Nama hostnya
$user = "root"; // Username
$pass = ""; // Password (Isi jika menggunakan password)
$connect = mysqli_connect($host, $user, $pass, "latihan"); // Koneksi ke MySQL
?>

STEP 4 – BUAT FORM UPLOAD
Pada step ini, kita akan membuat sebuah file dengan nama fom.php yang berfungsi sebagai tampilan form uploadnya. Simpan pada folder xampp/htdocs/latihan_upload/. Berikut ini tampilan dan kodenya :

Form - Cara Membuat Upload Gambar dengan PHP dan MySQL

<html>
<head>
  <title>Form Upload Gambar</title>
</head>
<body>
  <h1>Form Upload Gambar</h1>
  <form method="post" enctype="multipart/form-data" action="upload.php">
    <input type="file" name="gambar">
    <input type="submit" value="Upload">
  </form>
</body>
</html>

STEP 5 – BUAT PROSES UPLOAD
Sekarang, kita akan membuat file upload.php yang berfungsi untuk memproses upload gambarnya. Simpan pada folder xampp/htdocs/latihan_upload/. Berikut ini kodenya :

<?php
// Load file koneksi.php
include "koneksi.php";

// Ambil Data yang Dikirim dari Form
$nama_file = $_FILES['gambar']['name'];
$ukuran_file = $_FILES['gambar']['size'];
$tipe_file = $_FILES['gambar']['type'];
$tmp_file = $_FILES['gambar']['tmp_name'];

// Set path folder tempat menyimpan gambarnya
$path = "images/".$nama_file;

if($tipe_file == "image/jpeg" || $tipe_file == "image/png"){ // Cek apakah tipe file yang diupload adalah JPG / JPEG / PNG
  // Jika tipe file yang diupload JPG / JPEG / PNG, lakukan :
  if($ukuran_file <= 1000000){ // Cek apakah ukuran file yang diupload kurang dari sama dengan 1MB
    // Jika ukuran file kurang dari sama dengan 1MB, lakukan :
    // Proses upload
    if(move_uploaded_file($tmp_file, $path)){ // Cek apakah gambar berhasil diupload atau tidak
      // Jika gambar berhasil diupload, Lakukan :	
      // Proses simpan ke Database
      $query = "INSERT INTO gambar(nama,ukuran,tipe) VALUES('".$nama_file."','".$ukuran_file."','".$tipe_file."')";
      $sql = mysqli_query($connect, $query); // Eksekusi/ Jalankan query dari variabel $query
      
      if($sql){ // Cek jika proses simpan ke database sukses atau tidak
        // Jika Sukses, Lakukan :
        header("location: index.php"); // Redirectke halaman index.php
      }else{
        // Jika Gagal, Lakukan :
        echo "Maaf, Terjadi kesalahan saat mencoba untuk menyimpan data ke database.";
        echo "<br><a href='form.php'>Kembali Ke Form</a>";
      }
    }else{
      // Jika gambar gagal diupload, Lakukan :
      echo "Maaf, Gambar gagal untuk diupload.";
      echo "<br><a href='form.php'>Kembali Ke Form</a>";
    }
  }else{
    // Jika ukuran file lebih dari 1MB, lakukan :
    echo "Maaf, Ukuran gambar yang diupload tidak boleh lebih dari 1MB";
    echo "<br><a href='form.php'>Kembali Ke Form</a>";
  }
}else{
  // Jika tipe file yang diupload bukan JPG / JPEG / PNG, lakukan :
  echo "Maaf, Tipe gambar yang diupload harus JPG / JPEG / PNG.";
  echo "<br><a href='form.php'>Kembali Ke Form</a>";
}
?>

Berikut penjelasan dari kode diatas :
$_FILES[‘gambar‘][‘name’];
Untuk mengambil nama file yang diupload.

$_FILES[‘gambar‘][‘size’]; 
Untuk mengambil ukuran file yang diupload dalam bytes.

$_FILES[‘gambar‘][‘type’]; 
Untuk mengambil tipe file yang diupload.

$_FILES[‘gambar‘][‘tmp_name’];
Untuk mengambil url/path folder tempat penyimpanan sementara file yang diupload, sebelum dipindahkan ke folder images.

NOTE : Pada kode diatas, terdapat tulisan gambar. tulisan tersebut harus sama dengan nama input type=”file” yang ada pada form (form.php).

if($tipe_file == "image/jpeg" || $tipe_file == "image/png"){

Untuk mengecek apakah file/gambar yang diupload tipenya jpg atau png.

 

if($ukuran_file <= 1000000){

Untuk mengecek apakah file/gambar yang diupload ukurannya kurang dari sama dengan 1MB. Pada kode tersebut saya menetapkan <= 100000, 100000 itu sama dengan 100000 bytes = 1MB.

 

move_uploaded_file($tmp_file, $path)

kode inilah yang berfungsi untuk memindahkan gambar / file yang telah diupload dari folder tmp ke dalam folder di website kita (pada catatan ini kita upload gambarnya ke folder images). Struktur dasar penulisan kodenya adalah :

move_uploaded_file($tmp, $path);

/*
Keterangan:
- $tmp : diisi dengan sumber file yang diupload
- $path : diisi dengan url/path folder tempat menyimpan gambar. contoh: images/gambar.jpg
*/

 

$query = "INSERT INTO gambar(nama,ukuran,tipe) VALUES('".$nama_file."','".$ukuran_file."','".$tipe_file."')";

Query SQL untuk menyimpan data gambar(nama, ukuran, dan tipe gambar) ke dalam tabel gambar pada database latihan.


STEP 6 – BUAT VIEW DATA

Terakhir, kita akan membuat file index.php yang berfungsi untuk menampilkan data gambar(nama, ukuran, dan tipe gambar) dari database ke halaman website kita. Simpan pada folder xampp/htdocs/latihan_upload/. Berikut ini tampilan dan kodenya :

View - Cara Membuat Upload Gambar dengan PHP dan MySQL

<html>
<head>
  <title>Data Gambar</title>
</head>
<body>
<h1>Data Gambar</h1><hr>
<a href="form.php">Tambah Gambar</a><br><br>
<table border="1" cellpadding="8">
<tr>
  <th>Gambar</th>
  <th>Nama File</th>
  <th>Ukuran File</th>
  <th>Tipe File</th>
</tr>

<?php
// Load file koneksi.php
include "koneksi.php";

$query = "SELECT * FROM gambar"; // Tampilkan semua data gambar
$sql = mysqli_query($connect, $query); // Eksekusi/Jalankan query dari variabel $query
$row = mysqli_num_rows($sql); // Ambil jumlah data dari hasil eksekusi $sql

if($row > 0){ // Jika jumlah data lebih dari 0 (Berarti jika data ada)
  while($data = mysqli_fetch_array($sql)){ // Ambil semua data dari hasil eksekusi $sql
    echo "<tr>";
    echo "<td><img src='images/".$data['nama']."' width='100' height='100'></td>";
    echo "<td>".$data['nama']."</td>";
    echo "<td>".$data['ukuran']."</td>";
    echo "<td>".$data['tipe']."</td>";
    echo "</tr>";
  }
}else{ // Jika data tidak ada
  echo "<tr><td colspan='4'>Data tidak ada</td></tr>";
}
?>
</table>
</body>
</html>

Berikut penjelasan dari kode diatas :

$sql = mysqli_query($connect, $query);

Untuk mengeksekusi / menjalankan query sql. struktur dasar penulisannya adalah sebagai berikut :

mysqli_query($connect, $query);

/*
Keterangan :
- $connect : diisi dengan koneksi ke mysql. hasil dari mysqli_connect
- $query : diisi dengan Query SQL yang diinginkan
*/
mysqli_num_rows($sql);

Untuk mengambil jumlah data dari hasil eksekusi suatu query sql. Struktur dasar penulisannya adalah sebagai berikut :

mysqli_num_rows($sql);

/*
Keterangan :
- $sql : diisi dengan hasil eksekusi query sql(mysql_query())
*/

 

mysqli_fetch_array($sql);

Untuk mengambil data dari hasil eksekusi suatu query sql. Struktur dasar penulisannya adalah sebagai berikut :

mysqli_fetch_array($sql);

/*
Keterangan :
- $sql : diisi dengan hasil eksekusi query sql(mysql_query())
*/

Kode diatas saya simpan didalam looping while berfungsi untuk melakukan proses perulangan sampai data terkahir dengan tujuan agar kita bisa menampilkan datanya satu per satu.

echo "<td><img src='images/".$data['nama']."' width='100' height='100'></td>";
echo "<td>".$data['nama']."</td>";
echo "<td>".$data['ukuran']."</td>";
echo "<td>".$data['tipe']."</td>";

Pada kode diatas terdapat variabel $data digunakan untuk mengambil isi dari field-field yang ada pada tabel gambar di database latihan. Untuk kode yang berada didalam tanda [‘…….’], kode tersebut harus sama dengan nama field yang ada pada tabel gambar.

Pada catatan ini saya hanya membahasa proses upload dan simpan data ke database. Saat ini, saya sudah membuat catatan baru, catatan tersebut adalah pengembangan dari catatan ini yaitu : Cara Membuat CRUD Plus Upload Gambar dengan PHP dan MySQL.

Source Code
Untuk mengunduh source code nya silahkan klik link berikut ini : Download.

Akhirnya selesai juga. Sekian untuk catatan kali ini. Semoga catatan ini bisa bermanfaat. Terimakasih.

Referensi :
http://php.net/manual/en/reserved.variables.files.php
http://php.net/manual/en/features.file-upload.post-method.php

Tutorial membuat upload gambar dengan PHP dan MySQL, Tutorial buat upload gambar dengan PHP dan MySQL, Cara mudah Membuat Upload Gambar dengan PHP dan MySQL, Cara mudah buat Upload Gambar dengan PHP dan MySQL, Cara buat Upload Gambar dengan PHP dan Database MySQL, Cara membuat Upload Gambar dengan PHP dan Database MySQL

Upload Gambar

(Total : 111,050 viewers, 4 viewers today)
cara-membuat-upload-gambar-dengan-php-dan-mysql

ABOUT THE AUTHOR

Interested in android programming, long time focused on web development. Visit My Profile Site at www.rizaldimaulidia.com

POST YOUR COMMENTS TO azkazulham (Cancel)

Your email address will not be published. Required fields are marked *

Name *

Email *

Website

164 Comments

  1. farhan alfis

    Fatal error: Uncaught mysqli_sql_exception: Unknown database ‘mynotescode’ in C:\xampp\htdocs\latihan_upload\koneksi.php:5 Stack trace: #0 C:\xampp\htdocs\latihan_upload\koneksi.php(5): mysqli_connect(‘localhost’, ‘root’, ”, ‘mynotescode’) #1 C:\xampp\htdocs\latihan_upload\index.php(17): include(‘C:\\xampp\\htdocs…’) #2 {main} thrown in C:\xampp\htdocs\latihan_upload\koneksi.php on line 5

    ini kenapa ya bang?

    • oh itu saya ada salah di step 3. harusnya nama databasenya latihan bukan mynotescode.
      coba cek lagi tutorialnya pada step 3, sudah saya update

  2. idham mansyah

    udah bang, foto udah ke post dalam folder images, tapi tidak bisa di get bang

  3. idham mansyah

    bang mau nanya, kalo upload fotonya beserta dengan caption foto, gimana bang? saya ngikutin ini dan dibagian ‘upload.php’ itu saya tambahkan ‘$namaproduk = $_POST[‘namaproduk’];
    $jenisbarang = $_POST[‘jenisbarang’];
    $hargabarang = $_POST[‘hargabarang’];’ sebagai caption dari foto tsb. Untuk yang caption barang nongol, namun untuk fotonya tidak. Solusinya gimana ya bang? mohon di respon segera bang, terimakasih.

    • ke databasenya field foto ada isinya atau tidak? lalu cek juga folder images nya, ada atau tidak foto yang di uploadnya

      • idham mansyah

        sudah bang, sudah masuk fotonya, namun tidak bisa di get pict-nya bang dari folder tsb

  4. ahmad joko

    Maaf mas, punya sya setelah choose gambar, nah trus sya klik tombol upload, tapi kemudian malah blank screen itu kenapa ya?
    (sya langsung coba di hosting)
    tapi malah stuck di domain/upload/upload.php hehe…

    • coba pada file upload.php, tambahkan skrip berikut dipaling atas setelah < ?php. ini_set(‘display_errors’, 1); ini_set(‘display_startup_errors’, 1); error_reporting(E_ALL);

      lalu coba run lagi, harusnya muncul errornya kenapa

  5. Juliandiva

    Halo om makasih ilmunya. disini saya mau bertanya..
    saya udah ngikutin intruksi sesuai panduan, di bagian upload itu sudah berhasil, file nya juga udah berhasil terkirim ke folder yang kita buat. tapi ada muncul pesan “Maaf, Terjadi kesalahan saat mencoba untuk menyimpan data ke database.” dan data foto nya gak masuk ke database. itu gimana caranya om?

    • berarti ada salah pada query insertnya. coba pada file upload.php, cari skrip berikut :
      $sql = mysqli_query($connect, $query);

      ubah jadi :
      $sql = mysqli_query($connect, $query) or die(mysqli_error($connect));

      lalu coba upload lagi, harusnya muncul error query nya, nah copas errornya disini

  6. Muhammad Syofi Azmi

    Bang saya error gini, padahal sudah bikin index.php nya

    Notice: Undefined index: gambar in D:\xampp\htdocs\latihan_upload\upload.php on line 5

    Notice: Trying to access array offset on value of type null in D:\xampp\htdocs\latihan_upload\upload.php on line 5

    Notice: Undefined index: gambar in D:\xampp\htdocs\latihan_upload\upload.php on line 6

    Notice: Trying to access array offset on value of type null in D:\xampp\htdocs\latihan_upload\upload.php on line 6

    Notice: Undefined index: gambar in D:\xampp\htdocs\latihan_upload\upload.php on line 7

    Notice: Trying to access array offset on value of type null in D:\xampp\htdocs\latihan_upload\upload.php on line 7

    Notice: Undefined index: gambar in D:\xampp\htdocs\latihan_upload\upload.php on line 8

    Notice: Trying to access array offset on value of type null in D:\xampp\htdocs\latihan_upload\upload.php on line 8
    Maaf, Tipe gambar yang diupload harus JPG / JPEG / PNG.

    • ini bukan karena file index, ini karena input type=file yang ada di form atribut name nya belum om isi atau tidak sama dengan yang ada di upload.php, coba perhatikan baik-baik tutorial ini, terutama pada nya. atribut name nya harus diisi dengan gambar, agar sama seperti yang adai di upload.php nya. saya juga sudah menjelaskan hal ini pada tutorial ini. mohon diikuti dari awal sampai akhir dan dipahami penjelasan saya

  7. axel visitor

    buat grup wa / tele aja gan hhe.. jdi mmpermudah agan juga untk tolong kita yg masi nubi 😀

    • waduh iya om saya sendiri belum siap, soalnya ini pun cukup keteteran untuk balas semua komentar dari blog, facebook, dan youtube om. Kalau mau kontak saya bisa chat via wa saya hehe

  8. Indra Subrolarang

    Siang Gan. saya sudah ikuti semua scriptnya.. tp kenapa pas di upload ko muncul pesan “Maaf, Gambar gagal untuk diupload.”
    Kembali Ke Form

    padahal saya sudah copas dari web ini gan.. + saya sudah buat folder dan dbnya dengan betul.

    Mohon Pencerahannya gan

  9. Fisca Anjelina

    Artikel tutorialnya bermanfaat banget, jadi tau bagaiamana cara membuat upload gambar dengan php dan mysql
    Jangan lupa juga kunjungi website kampus saya https://www.atmaluhur.ac.id/
    Saya Fisca Anjelina (1722500136)

  10. qtndaaaaa

    halo ka, mau tnya. saya kan udh coba script ini. tp pas di running muncul notif “Maaf, Tipe gambar yang diupload harus JPG / JPEG / PNG.” padahal image yang saya uplolad sudah berbentuk JPG. itu kenapa ya?

      • qtndaaaaa

        udah bener kok ka, tipenya jpg. salah dimananya ya?

  11. arieffirdaus

    Ketika dicoba, ada error seperti berikut:

    [Thu Jul 18 17:08:33.296153 2019] [:error] [pid 31743] [client 10.15.86.205:59749] PHP Warning: move_uploaded_file(images/poto2.png): failed to open stream: Permission denied in /var/www/html/coba/upload.php on line 19, referer: http://10.15.13.211/coba/form.php
    [Thu Jul 18 17:08:33.296196 2019] [:error] [pid 31743] [client 10.15.86.205:59749] PHP Warning: move_uploaded_file(): Unable to move ‘/tmp/phpK7paIG’ to ‘images/poto2.png’ in /var/www/html/coba/upload.php on line 19, referer: http://10.15.13.211/coba/form.php

    Saya sudah kasih permission 777 ke folder images tapi masih seperti itu errornya.

    [root@localhost coba]# ll
    total 24
    -rw-r–r–. 1 apache apache 260 Jun 19 2015 form.php
    drwxrwxrwx. 2 apache apache 4096 Jul 18 16:53 images
    -rw-r–r–. 1 apache apache 1036 May 29 2016 index.php
    -rw-r–r–. 1 apache apache 213 Oct 6 2016 koneksi.php
    -rw-r–r–. 1 apache apache 1066 Oct 6 2016 mynotescode.sql
    -rw-r–r–. 1 apache apache 1963 May 29 2016 upload.php

    Kenapa ya?

    • Itu errornya permission denied. Ini pakai linux? Kalau iya cobs buka permission untuk folder images nya.
      chmod -R 777 nama_folder

  12. muhammad irfan

    mantap bang, saya sangat suka penjelasan abang, sangat detail. jadi saya sebagaia pemula lebih mudah memahaminya karena setiap code diberikan penjelasan. lanjutkan bang

  13. Fariz Sujatmiko

    Mas, kalo kayak gini gimana?

    Warning: move_uploaded_file(images/hp.jpg): failed to open stream: No such file or directory in D:\xampp\htdocs\Fashillah\modules\upload_aksi.php on line 16

    Warning: move_uploaded_file(): Unable to move ‘D:\xampp\tmp\php8A73.tmp’ to ‘images/hp.jpg’ in D:\xampp\htdocs\Fashillah\modules\upload_aksi.php on line 16

    • sudah melakukan langkah STEP 1 nomor 2?
      Error tersebut muncul karena folder images tempat gambar disimpan tidak ditemukan

  14. ram dan -

    Gan, ane punya masalah baru, pas user selesai upload gambar, di indexnya jadi berantakan meskipun uda diatur height dan witdhnya pake css.
    Pertanyaannya apakah bisa ketika user upload gambar, gambar di resize dulu misalnya 100×100 px, baru di simpan yang hasil gambar resizenya ke database dan path foldernya?
    Bantuin dong Gan, soalnya cuma di sini ane nemu yang penjelasannya detail banget, web lain cuma ngasih source code tanpa jelasin detail seperti di sini.

    • kalo untuk upload and crop sebenarnya sudah ada tutorialnya om. cuman pada tutorial tersebut user tetep bisa menentukan width / height nya sesuka dia. saya pernah sih buat upload + crop yang sudah saya tentukan width height nya. jadi user tidak melenceng saat upload dan semua gambar ukurannya sama. cuman belum saya buatkan tutorialnya om

  15. trialthat

    Gan. saya sudah ikuti semua scriptnya.. tp kenapa pas di upload ko muncul pesan “Maaf, Gambar gagal untuk diupload.”
    Kembali Ke Form

    padahal saya sudah copas dari web ini gan.. + saya sudah buat folder dan dbnya dengan betul.

    Mohon Pencerahannya gan

    • Rizaldi Maulidia Achmad

      coba kirimkan source code dan db nya ke saya om. kirim lewat fans page fb. biar saya bisa cek

  16. batamdev

    kalau untuk membuat editnya bagaimana ya?

    ketika di edit jika di kosongkan saja, gambarnya tidak hilang dan ada preview gambarnya juga.

    agar bisa upload gambar dari handphone dan bisa ngambil gambar langsung dari kamera, seperti facebook. bagaimana kodingnya ?

      • batamdev

        sudah di coba pakai kalau langsung dari kamera bawaan hp gambar gagal upload, kalau dipilih pakai aplikasi lain misalnya camera 360 bisa. atau di photo dlu kemudian pilih di galeri baru bisa

        • Rizaldi Maulidia Achmad

          gagal upload disini apa ada error yang muncul? soalnya disini memafaatkan fitur html5. itu pakai browser apa bukanya?

        • batamdev

          pakai browser google chrome, pesan error tidak ada. nama atau keterangan photonya masuk tapi photonya tidak ada. di cek folder upload juga tidak ada.

          langsung dari kamera hp photo tidak tersimpan di hp, tapi kalau pakai aplikasi tambahan seperti kamera 360 photo yg di ambil tersimpan di hp

          • Rizaldi Maulidia Achmad

            kalau di coba lewat laptop bisa (Bukan lewat smartphone) ?
            saya terakhir kali coba bisa dan tidak ada masalah om

  17. Alvhy fitra

    Kalau pas upload keluar terus coment “Maaf, Terjadi kesalahan saat mencoba untuk menyimpan data ke database.”
    Apa yg salahnya bg?

    • Rizaldi Maulidia Achmad

      Itu ada yang salah pada query insert nya. Coba di file upload.php, pada baris ke 23 ubah jadi sepeeti ini :
      $sql = mysqli_query($connect, $query) or die(mysqli_error($connect));

      Lalu jalankan kembali. Lihat apaa error yang keluar?

      • HohoRevsha

        Mas Achmad, saya juga mengalami hal serupa, saya upload gambar kedua, ketiga dan seterusnya,
        pesan eror yang muncul selalu ini “Maaf, Terjadi kesalahan saat mencoba untuk menyimpan data ke database.”
        Tapi anehnya gambar sudah tersimpan di folder /images.

        kemudian, saya utak atik di databasenya, untuk primary key pada “id” saya hapuskan
        jadi tidak ada primary key nya didalam tabel gambar. Kemudian saya f5 (refresh) pada chrome dan field di database saya hapus semua, lalu saya jalankan. akhirnya work. gambar pertama, kedua, ketiga, dan seterusnya ketika diupload tidak ada masalah.. tidak muncul pesan eror

        • HohoRevsha

          dan saya liat databasenya, id yang muncul selalu 0, kenapa hal itu bisa terjadi ya mas?

          jikalau primary key pada “id” tidak saya hapuskan, maka gambar selanjutnya yang saya upload tidak bisa ( menunjukkan error karena id menunjukkan angka 0 yg sama).
          Berhubung primary key nya sudah saya hapus, upload gambar berapapun tetap bisa, dan tidak menunjukkan error meski semua gambar yg terupload menunjukkan id 0 pada database nya

          Mohon pencerahannya Mas Achmad 🙂

  18. angga joe

    mantep gan.. penjelasannya jelas.. top markotop.. sekali lagi thx

    • Rizaldi Maulidia Achmad

      Siap om, sama-sama hahaa
      Senang bisa membantu 😀

  19. paryanto

    database sudah saya buat sama persis, file sudah ngambil asli dari jenengan , kok eror ya gan??

    Notice: Undefined index: foto in C:\xampp\htdocs\upload_php\upload.php on line 6

    Warning: move_uploaded_file(): The second argument to copy() function cannot be a directory in C:\xampp\htdocs\upload_php\upload.php on line 19

    Warning: move_uploaded_file(): Unable to move ‘C:\xampp\tmp\php8F42.tmp’ to ‘images/’ in C:\xampp\htdocs\upload_php\upload.php on line 19
    Maaf, Gambar gagal untuk diupload.
    Kembali Ke Form

    • Rizaldi Maulidia Achmad

      Error ini di sebabkan karena isi dari atribut name pada input type file nya berbeda dengan yang ada di file proses upload nya. Di tutorial ini sudah saya jelaskan om. Silahkan di baca lagi untuk penjelasan dari proses uploadnya

  20. renita p

    kalo menampilkan gambar yg telah dipilih sebelum di klik upload gimana ya mas caranya

  21. azkazulham

    jikalau kita ingin menampilkan link gambarnya? jadi kaya nama_gambar jadi di tabel ada hyperlink jika di klik maka akan menampilkan full gambar?

    • Rizaldi Maulidia Achmad

      Kalo via link begitu. Otomatis akan menampilkan gambar secara full om. Sesuao source / path si gambarnya

  22. khusniyati

    penjelasannya lumayan. Saya tugas akhir saya membuat web.Apakah bisa tanya-tanya ke mas rizaldi?

    • Rizaldi Maulidia Achmad

      silahkan mba. yang lain pun banyak bertanya ke saya soal pemograman. kalau bisa membantu saya senang hehe. silahkan kontak saja lewat fans page di fb kami mba 😀

  23. Rizal Saputra

    cara menampilkan gambarnya di database mysql gimana? punya gua cuman bisa nampilin di tabel tampilan phpnya doang, sedangkan utk di databasenya, dia cuman ngebaca nama gambarnya saja.

    • Rizaldi Maulidia Achmad

      Tujuannya buat apa menampilkan gambar di databasenya om? Emang nanti user yanh pakai aplikasi om disuruh akses databasenya? Kan tidak mungkin om. Dan setau saya di database tidak bisa menampilkan gambar. Jadi cukup di halaman aplikasinya gambar tersebut ditampilkan. Kalau di database cukup nama file nya saja

    • abdullah

      oiya gan . nanya nih . fungsi database untuk apa kalau gambarnya disimpan didalam folder file sedangkan nanti membuat hosting kepenuhan dong.. dan emang ga bisa ya kalo gambar itu disimpan di mysql(karna db kan fungsinya untuk nyimpan) ? bukan di folder.

      • Rizaldi Maulidia Achmad

        Saya coba luruskan. Emang kalau kita menyimpan gambarnya di database. Apa tidak akan memakan space hardisk di hosting? Jawabannya jelas salah. Karena database sendiri pun disimpan di hardisk dan pasti memakan space hardisk. Lalu bagaimana untuk mencegah agar hardisk tidak cepat penuh? Jawabannya adalah buat sebuah validasi maksimum file size yang boleh di upload. Mungkin om sendiri punya sosial media? Hampir semua atau bahkan memang semua sosmed pasti membatasi maksimal file size gambar yang bisa di upload. Mudah-mudahan penjelasan saya tersebut bisa di mengerti 😀

  24. Wandi Hernadi

    kang ini coding ini pake MYSQLI Function, kalo yg masih pake yg dulu yg MYSQL Function apanya yang diubah ya pada codingannya?

    • Rizaldi Maulidia Achmad

      Kalo saya jelaskan di sini aga panjang om. Silahkan om cari saja perbedaan antara mysql dan mysqli

  25. Nazfiva Afianda

    Hallo kak. Aku ada problem ni

    Warning: mysqli_connect(): (HY000/1049): Unknown database ‘mynotescode’ in C:\xampp\htdocs\upload_php\koneksi.php on line 5

    Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in C:\xampp\htdocs\upload_php\upload.php on line 23
    Maaf, Terjadi kesalahan saat mencoba untuk menyimpan data ke database.

    itu yang muncul setelah aku klik choose file. itu kenapa yaa?

    • Rizaldi Maulidia Achmad

      Nama databasenya apa mba? Tolong periksa file koneksi.php nya. Sesuaikan nama databasenya dengan yang mba buat

      • Nazfiva Afianda

        berarti mynotescode di koneksi.php itu diganti dengan nama database yang ane buat gan?

        • Rizaldi Maulidia Achmad

          Iyah mba benar

  26. Muhammad Bayu Devara

    Kak saya masih kedapatan problem di IF untuk type fotonya, saya udah ikutin sesuai yang kakak buat, tapi gatau kenapa kayaknya tipe fotonya gak kebaca kak

    Mohon responnya ya kak, mau belajar soalnya hehe

    • Rizaldi Maulidia Achmad

      Apa ada error yang muncul?
      Coba sy mau lihat kode nya. Upload aja lewat fans page fb om skrip uploadnya. Biar saya bisa cek

  27. Maulinda

    Makasih banyak mas ilmunya. Sangat membantu saya banget nih. 🙏😊

    • Rizaldi Maulidia Achmad

      Sama-sama mba. Senang bisa membantu 😀

    • Rizaldi Maulidia Achmad

      Sama-sama mba 🙂
      Senang bisa membantu hehe

    • Rizaldi Maulidia Achmad

      Sama-sama om, senang kalau bisa bermanfaat 😀

  28. rsi lucky

    bang kan saya buat tempat upload di /admin/upload.php
    nah saya pengen hasil uploadnya ada di public_html/images

    • Rizaldi Maulidia Achmad

      Tinggal ganti variabel $path jadi seperti ini om:
      $path = “../images/”.$nama_file;

      Jadi ditambahkan titik-titik slash di awal (“../”)

  29. ikhsan alfath

    Terimakasih banyak gan. penjelasanya mudah di pahami 😀

    • Rizaldi Maulidia Achmad

      Sama-sama om, senang bisa membantu 😀

  30. steven hartono

    gan mau tanya kalo mau upload gambar lebih dari 1 gimana caranya ya??
    terus kalo mau delete gambar gimana ya?
    thanks bos

    • Rizaldi Maulidia Achmad

      Untuk upload lebih dari 1 gambar. Coba cek komentar dibawah om. Pernah ada yg tanya juga
      Untuk delete gambar. Gunakan unlink(“path/to/image”);

      Contoh : unlink(“images/gambar.png”);
      Kode tersebut akan memghapus gambar.png pada folder images

  31. sugito1960

    matur nuwun makaping-kaping…
    mugi-mugi kasaean panjenengan tansah pun uri-uri..
    kang aryo jagad bade mirsani sumbangsih puniko…

    • Rizaldi Maulidia Achmad

      Sama-sama om. Senang bisa membantu 😀

  32. remu....

    gan mau tanya step 2 nomor 2 jika tanpa id kira” bisa g?

    • Rizaldi Maulidia Achmad

      bisa om. nanti tinggal di sesuaikan saja query sql nya. Tapi tetap harus ada kolom yang menjadi PRIMARY KEY nya om

  33. remu....

    mau tanya pada coding [‘gambar’] ini nama tabelnya ? atau yg lain?
    $nama_file = $_FILES[‘gambar’][‘name’];
    $ukuran_file = $_FILES[‘gambar’][‘size’];
    $tipe_file = $_FILES[‘gambar’][‘type’];
    $tmp_file = $_FILES[‘gambar’][‘tmp_name’];

    • Rizaldi Maulidia Achmad

      Itu disesuaikan dengan nama input type file yg ada di form upload nya om.
      Masih error juga om? Kalau masih error juga coba kirim file nya ke email atau lewat fans page di fb om. Nanti saya cek.

  34. remu....

    mau tanya ini solusinya gimna ya?
    if($ukuran_file <= 1000000){
    if(move_uploaded_file($tmp_file, $path)){
    $query = "INSERT INTO gambar(nama_gambar,ukuran,tipe) VALUES('".$nama_file."','".$ukuran_file."','".$tipe_file."')";
    $sql = mysqli_query($connect, $query);

    muncul seperti ini
    Warning: move_uploaded_file(images/tes.png): failed to open stream: No such file or directory in C:\xampp\htdocs\pkn\buat tes\gambar\upload_gambar.php on line 16

    Warning: move_uploaded_file(): Unable to move 'C:\xampp\tmp\phpE60D.tmp' to 'images/tes.png' in C:\xampp\htdocs\pkn\buat tes\gambar\upload_gambar.php on line 16
    Maaf, Gambar gagal untuk diupload.

    • Rizaldi Maulidia Achmad

      Error tersebut karena folder images tempat menyimpan fotonya tidak ada. Silahkanbuat dulu folder images nya (lihat pada step 1 nomor 2 pada tutorial ini)

    • remu....

      gan punya link youtube nya?, saya udah coba ikuti step 1 dan 2 masih tetep error.
      if(move_uploaded_file($tmp_file, $path)){
      $query = “INSERT INTO gambar(nama_gambar,ukuran,tipe) VALUES(‘”.$nama_file.”‘,'”.$ukuran_file.”‘,'”.$tipe_file.”‘)”;
      $sql = mysqli_query($connect, $query);

  35. Ahin One

    Gan itu saya coba masih bisa di bypass (bisa upload file php dengan menggunakan tamper data) bgaimana cara patch validasinya ya

    • Rizaldi Maulidia Achmad

      Tamper data? Itu maksudnya gmn yah om? Hehe

  36. opien anisa

    Puya saya gambar nya tidak muncul.. Saya pake kode <img src="../gambar/galeri/”> ada fb ndak gan 😅 mau foto kodenya tp ga bs dsni ya

  37. yusufricky

    Gan, terima kasih itu sangat membantu..dalam hal ini saya hendak bertanya.
    kalo spt contoh kan :
    id ket. gambar
    1 nanas nanas.jpg
    2 Durian durian.jpg
    3 sapi sapi.jpg

    kl dari postingan kan gt y mas, krang lebih.
    kalo ingin 1 id untuk upload ke tabel giman gan ya ? misal pgn spt ini
    id ket. gambar_utama gambar1 gambar2
    1 macam gambar nanas.jpg durian.jpg sapi.jpg

    terima kasih mas, semoga bs membantu

    • Rizaldi Maulidia Achmad

      Pada form uploadnya. buat 3 input type file. jadi kaya gini contoh :
      <input type="file" name="gambar1">
      <input type="file" name="gambar2">
      <input type="file" name="gambar3">

      lalu pada proses uploadnya, buat 3 skrip berikut :
      $nama_file1 = $_FILES['gambar1']['name'];
      $nama_file2 = $_FILES['gambar2']['name'];
      $nama_file3 = $_FILES['gambar3']['name'];

      $tmp_file1 = $_FILES['gambar1']['tmp_name'];
      $tmp_file2 = $_FILES['gambar2']['tmp_name'];
      $tmp_file3 = $_FILES['gambar3']['tmp_name'];

      move_uploaded_file($tmp_file1, ‘namafoldertempatnyimpan/’.$nama_file1);
      move_uploaded_file($tmp_file2, ‘namafoldertempatnyimpan/’.$nama_file2);
      move_uploaded_file($tmp_file3, ‘namafoldertempatnyimpan/’.$nama_file3);

      lalu tambahkan skrip query untuk insert ke databasenya sesuai kebutuhan. skrip yang saya contohkan diatas itu untuk mengupload lebih dari 1 gambar sekaligus

  38. ridwan fauzi

    Kak boleh request gak? … Kalau coding untuk input tanggal menggunakan select option gimana ya?

    • Rizaldi Maulidia Achmad

      Kenapa tidak coba pakai datepicker om? Menurut saya jadi lebih simpel kalau pakai datepicker.

  39. Haekal M RIfky

    Gan untuk pertanyaan yg sama, yaitu terjadi kesalahan saat mencoba untuk menyimpan ke database. Saya sudah coba untuk menambahkan coding yang menjadi seperti ini “$sql = mysqli_query($connect, $query) or die(mysqli_error());”, tapi tetep saja error.
    error nya seperti ini “Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\xampp\htdocs\Latihan_Upload\upload.php on line 31”. Mohon Jawabannya Gan

    • Rizaldi Maulidia Achmad

      mysqli_error membutuhkan 1 parameter yaitu koneksi databasenya. Jadi kurang lebih seperti ini :
      mysqli_error($connect)

      • Haekal M RIfky

        masih tetap error gan “ou have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ”nama’,’ukuran’,’tipe’) VALUES (’99.jpg’,’31588′,’image/jpeg’)’ at line 1″

        • Rizaldi Maulidia Achmad

          itu ada yang salah pada query insertnya om. Coba saya pengen lihat kode yang sudah om buat (yang query insertnya)

          • Haekal M RIfky

            $query = “INSERT INTO gambar(‘nama’,’ukuran’,’tipe’) VALUES (‘”.$nama_file.”‘,'”.$ukuran_file.”‘,'”.$tipe_file.”‘)”;

          • Rizaldi Maulidia Achmad

            untuk kode yang ini : gambar(‘nama’,’ukuran’,’tipe’), tidak usah pakai kutip satu om. kurang lebih jadi seperti ini query yang benar :
            $query = “INSERT INTO gambar(nama,ukuran,tipe) VALUES(‘”.$nama_file.”‘,'”.$ukuran_file.”‘,'”.$tipe_file.”‘)”;

          • Haekal M RIfky

            Ok, sudah bisa gan. Makasih banyak

          • Rizaldi Maulidia Achmad

            Siap. sama-sama om 😀

  40. cisco ramon

    terima kasih sudah berbagi ilmu gan.. semoga ilmu ini berguna bagi saya dan rekan2 disekitar saya..

    • Rizaldi Maulidia Achmad

      Amiiin. Senang kalo bisa bermanfaat. Terimakasih sudah berkunjung om.

  41. Raka Giasta

    jadi yg di simpan di tabel mysqlnya itu gambarnya atau alamat gambar?

    • Rizaldi Maulidia Achmad

      Yang disimpan cuman nama file nya saja. Kalo gambarnya disimpan di database. Bisa brngkak nanti size datanasenya. Jadi gambarnya cukup disimpan di dalam sebuah folder.

      Maaf baru bisa bales.

  42. Noto

    Terima Kasih min tutorialnya

    • Rizaldi Maulidia Achmad

      Sama-sama om 🙂

  43. seayudiah

    hallo kak, saya mau tanya .. kok muncul ini ya?

    Warning: move_uploaded_file(images/SEREAL BALL CAPPUCCINO 500gr.png): failed to open stream: No such file or directory in C:\xampp\htdocs\serealover\gambar\upload.php on line 19

    Warning: move_uploaded_file(): Unable to move ‘C:\xampp\tmp\phpE8F2.tmp’ to ‘images/SEREAL BALL CAPPUCCINO 500gr.png’ in C:\xampp\htdocs\serealover\gambar\upload.php on line 19
    Maaf, Gambar gagal untuk diupload.

    padahal saya lihat di source code line 19 itu begini :
    if(move_uploaded_file($tmp_file, $path)){ // Cek apakah gambar berhasil diupload atau tidak

    mohon bantuan nya kak, terima kasih :))))

    • Rizaldi Maulidia Achmad

      Itu karena folder tempat gambar diuploadnya ga ada. Buat dulu folder imagesnya. Ikuti Step 1 langkah ke 2 pada tutorialnya

  44. Ahmad muhlasin

    Gan mau nanya ni saya,kenapa ya kok waktu di upload gambar ada pemberitahuan,maaf gambar gagal untuk di upload

  45. Johnd251

    Your weblog is 1 of a kind, i really like the way you organize the topics.

    • Rizaldi Maulidia Achmad

      Thank you. I hope you understood with my tutorial.

  46. arianbagusp

    gagak menyimpan ke database
    tapi udah ke simpen di folder
    solusinya

    • Rizaldi Maulidia Achmad

      coba pada file upload.php, pada kode baris ke 23 :
      $sql = mysqli_query($connect, $query);

      ubah jadi seperti ini :
      $sql = mysqli_query($connect, $query) or die(mysqli_error());

      terus coba jalankan lagi, cek apakah ada error yang muncul? kalo ada copas errornya disini

    • Rizaldi Maulidia Achmad

      Sama-sama om 🙂
      Terimakasih sudah berkunjung

  47. Latifur Rofik

    makasih min, ini mudah dipahami, ditunggu postingan selanjutnya

    • Rizaldi Maulidia

      Sama-sama om.
      Siap om. Terimakasih sudah berkunjung dan baca catatan saya. Kalo mau request tutorial seputar pemograman web silahkan om, kirim request nya ke email saya yg ada di.menu About 🙂

  48. vextra

    saya tidak mengerti scrip unlink() itu dipakai di mana??

    bisa di buat kan tabel tambahan “aksi” yang isinya hapus gambar di sebelah nya Tipe File ???

    • Rizaldi Maulidia

      pada file index.php. disitu ada skrip ini :

      echo “<td>”.$data[‘tipe’].”</td>”;

      tambahkan skrip ini setelah skrip diatas :
      echo “<td><a href=’delete.php?id=”.$data[‘id’].”‘>Hapus</a></td>”;

      lalu buat sebuah file delete.php. berikut isi dari file tersebut :
      http://pastebin.com/yCrjiAJ3

  49. vextra

    cara buat scrip menghapus gambar gimana ya???

    • Rizaldi Maulidia

      Kalo untuk memghapus gambar atau file lainnya. Cukup gunakan skrip unlink(“namafilenya”);

      Contoh saya ingin menghapus file img123.jpg yg ada di folder gambar. Berikut skripnya :

      unlink(“gambar/img123.jpg”);

      • vextra

        kalau menghapusnya melalui wep gimana???

        seperti saat menambahkan gambar

  50. Yusup

    asa wawuh ieu blogerrr… ahee.. mantap jall..

  51. bakrianto

    gan kalo mau menampilkan lebih dari 1 gambar gmn ya? di file index nya d ubah apanya?

    • Rizaldi Maulidia

      itu udah pasti tampil lebih dari 1 gambar gan. coba aja upload lagi sampai 2 gambar..
      saya sudah setting agar menampilkan semua gambar yang sudah diupload

  52. KikkyDevil

    gan saya mau nanya kalo bentuknya itu update berarti sql query kyak mna ya ??

    • Rizaldi Maulidia

      Yah gunakan query update om. Contoh :
      UPDATE gambar SET namafile=”$namafile”, size=”$size”, type=”$type” where id=”$_GET[‘id’]”

      $_GET[‘id’] ini diambil dari URL. Saran saya biar om paham. Mending pelajari dulu tentang “membuat crud dengan php dan mysql”

  53. pandi

    sangat bermanfaat gan

    • Rizaldi Maulidia

      Alhamdulillah saya senang kalo bisa bermanfaat. Terimakasih sudah berkunjung gan 🙂

  54. Mufti Haidar

    File berhasil di upload, sudah tersimpan di database tapi nggak tersimpan di folder tujuan
    Di index.php tampil gambar blank/rusak
    Solusinya gan ?

    • Rizaldi Maulidia

      1. Pada file form.php nya. Pastikan bahwa nama input type file nya sama dengan yg ada di file proses : $_FILES[‘gambar’]. “gambar” disitu harus sama dengan name input type file.

      2. Coba cek di form.php nya pada tag form apakah sudah ditambahkan atribut enctype=”multipart/form-data”

      3. Coba cek apakah atribut src yg pada tag img ada di index.php sudah mengarah ke folder tempat menyimpan gambarnya atau belum

  55. ZidniRyi

    Makasih Gan .. Kunbal : zlearn99.blogspot.com

  56. irwan

    Iya makasih mas. Saya mau bertanya. Kalau membuat tag koment gomana ya mas . Dan yang mau ditampilin kaya komeman ini mas. Yag mau ditampilin pertama gambr. Nama tanggal.waktu komenan. Terus isi komenan. Sebelum nya terimakasih

    • Rizaldi Maulidia

      Kalo mau gampang..
      Coba pelajari Bootstrap. Search aja di google. Di bootstrap udh disediakan..tinggal pakai

  57. Ray Khazunecarin

    Mas gambarnya gabisa ditampilin…. ada salah kodingan…. formatnya juga harus diinput….

    • Cahyoa adi nugrohon

      iyaa gk bisa tampil soalnya pas save database format nama adalah int untuk nampil harus varchar ane berhasil but thanks info

      • Rizaldi Maulidia

        Oh iyah bener om. Thanks sudah kasih tau. Ga ke cek sama saya. Akan saya perbaharui langsung

  58. William Giri

    gambarnya gk mau tampil, tapi udah kesimpen di foldernya.., gmn ni kak ?

  59. William Giri

    filenya mau kesimpen di foldernya, tpi kok gk bisa tampil di indexnya ya?

    • Rizaldi Maulidia

      sudah saya perbaharui gan.
      Ternyata kesalahan ada di saya. saya salah kasih tipe data pada field name. harusnya varchar bukan int.

    • Rizaldi Maulidia

      Kalo si file nya berhasil terupload ga gan? Coba cek folder image. Ada ga gambar yg diuploadnya.
      Trs perikasi query sql untuk insert datanya. Atau engga coba cek koneksinya..udh terkoneksi ke databasenya apa belum

    • Rizaldi Maulidia

      sudah saya perbaharui gan.
      Ternyata kesalahan ada di saya. saya salah kasih tipe data pada field name. harusnya varchar bukan int.

NOTE ARCHIVES