Skrip php unggah file ke database

Dalam melakukan upload gambar dengan PHP dan kemudian menyimpannya ke dalam database tidaklah sama dengan menyimpan sebuah karekter atau data-data yang bertipe string. sejauh pengetahuan saya, ada dua teknik yang sering digunakan dalam menyimpan gambar di database. Teknik pertama dengan cara menyimpan gambar tersebut ke dalam format BLOB/LONGBLOB

Nah. Namun pada menyimpan gambar ke dalam Format BLOB , jarang sekali digunakan oleh website developer, kenapa. ?

Nah. Disini kita akan Upload Gambar Kemudian menyimpan namanya saja ke dalam database, Sementara Gambar nya akan tersimpan ke dalam folder, Sehingga kita hanya tinggal memanggil gambar tersebut

Melakukan Proses Upload Gambar, Membuat Sebuah Form Input. Contoh Source Code Seperti gambar berikut

<form method="post" enctype="multipart/form-data">
<td colspan="4">Upload Gambar (Ukuran Maks = 1 MB) : <input type="file" name="gbjalan" required /> | 
Keterangan : <input type="text" name="kete" /> | <input type="submit" value="Upload" name="save"></td> </form>

2. Adapun Coding untuk proses Upload gambar adalah seperti berikut ini

<?php
 if (isset($_POST['save'])){
 $fileName = $_FILES['gambar']['name'];
  // Simpan di Folder Gambar
  move_uploaded_file($_FILES['gambar']['tmp_name'], "gambar/".$_FILES['gambar']['name']);
  echo"<script>alert('Gambar Berhasil diupload !');history.go(-1);</script>";
 }
?>
_

Jangan Lupa Untuk membuat sebuah Folder dengan nama gambar didalam folder projek anda.  

 

Menyimpan Gambar ke Database MySQL

 

1. Buat Sebuah Database, disini dibuat dengan nama "gambar" (tanpa tanda petik) dan Sebuah Tabel dengan nama "simpan" (tanpa tanda petik) , Dengan Struktur Tabel Seperti gambar berikut

Skrip php unggah file ke database

2. Buat Sebuah Koneksi File. php untuk mengkoneksikan database dengan projek anda. Isinya adalah Sebagai Berikut

<?php
// koneksi ke mysqli
$servername = "localhost";
$username = "root";
$password = "";
$db = "gambar";
// Create connection
$koneksi = mysqli_connect($servername, $username, $password,$db);
// Check connection
if (!$koneksi) {
die("Connection failed: " . mysqli_connect_error());
}
?>

3. Untuk Form dan Proses Upload kita masih menggunakan contoh sebelumnya. Hanya terdapat sedikit penambahan didalam coding proses Uploadnya karena kita juga akan melakukan proses penyimpanan ke dalam database

<?php
 if (isset($_POST['save'])){
 $fileName = $_FILES['gambar']['name'];
  // Simpan ke Database
  $sql = "insert into simpan (gambar, keterangan) values ('$fileName', '".$_POST['keterangan']."')";
  mysqli_query($koneksi, $sql);
  // Simpan di Folder Gambar
  move_uploaded_file($_FILES['gambar']['tmp_name'], "gambar/".$_FILES['gambar']['name']);
  echo"<script>alert('Gambar Berhasil diupload !');history.go(-1);</script>";
 }
?>

Menampilkan Gambar yang telah di Simpan & Unggah

Untuk menampilkan gambar yang telah tersimpan di database sebenarnya konsepnya sama saja dengan menampilkan data dari database hanya saja karena kita akan menampilkan gambar, kita perlu mendefinisikan sebuah tag img agar gambar dapat ditampilkan. contoh source code seperti dibawah ini

Dalam artikel ini, saya akan menjelaskan basic upload file dalam PHP. Pertama, kita akan membahas opsi konfigurasi PHP yang harus ada untuk pengunggahan file yang sukses. Setelah itu, kita akan mengembangkan contoh dunia nyata tentang cara upload file

Konfigurasikan Pengaturan PHP

Ada beberapa pengaturan konfigurasi PHP yang ingin Anda periksa terlebih dahulu untuk pengunggahan file yang sukses. Di bagian ini, kita akan membahas setiap opsi penting terkait pengunggahan file PHP. Opsi-opsi ini dapat dikonfigurasi dalam file php. ini

Jika Anda tidak yakin di mana menemukan file php. ini Anda, Anda dapat menggunakan

<?php echo php_ini_loaded_file(); ?>
_61 untuk menemukannya. Cukup buat file PHP di server Anda dengan baris berikut, dan buka dari browser

1
<?php echo php_ini_loaded_file(); ?>

Berikut adalah kutipan dari pengaturan file dengan beberapa default yang

1
; Whether to allow HTTP file uploads.
2
file_uploads = On
3
4
; Temporary directory for HTTP uploaded files.
5
<?php echo php_ini_loaded_file(); ?>
0
<?php echo php_ini_loaded_file(); ?>
1
<?php echo php_ini_loaded_file(); ?>
2
<?php echo php_ini_loaded_file(); ?>
3
<?php echo php_ini_loaded_file(); ?>
4
<?php echo php_ini_loaded_file(); ?>
5
<?php echo php_ini_loaded_file(); ?>
6
<?php echo php_ini_loaded_file(); ?>
7
<?php echo php_ini_loaded_file(); ?>
8
<?php echo php_ini_loaded_file(); ?>
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
; Whether to allow HTTP file uploads.
0
; Whether to allow HTTP file uploads.
1
; Whether to allow HTTP file uploads.
2
; Whether to allow HTTP file uploads.
3
; Whether to allow HTTP file uploads.
4

Kunci pengaturan

<?php echo php_ini_loaded_file(); ?>
_62

Nilai dari 

<?php echo php_ini_loaded_file(); ?>
62 directive harus disetel ke
<?php echo php_ini_loaded_file(); ?>
64 untuk memungkinkan pengunggahan file. Nilai default dari arah ini adalah
<?php echo php_ini_loaded_file(); ?>
_64

<?php echo php_ini_loaded_file(); ?>
_66

<?php echo php_ini_loaded_file(); ?>
67 direktive memungkinkan Anda untuk mengkonfigurasi ukuran maksimum yang diupload. Secara default, ini diatur ke
<?php echo php_ini_loaded_file(); ?>
_68 (dua megabyte), dan Anda dapat mengganti pengaturan ini menggunakan file. htaccess juga. Dua megabyte tidak terlalu banyak menurut standar sekarang, jadi Anda mungkin harus meningkatkannya. Jika Anda mendapatkan kesalahan bahwa file melebihi ________4______66 ketika Anda mencoba mengunggah file, Anda perlu meningkatkan nilai ini. Jika Anda melakukannya, pastikan juga untuk meningkatkan
<?php echo php_ini_loaded_file(); ?>
70 (lihat di bawah)

<?php echo php_ini_loaded_file(); ?>
_71

direktori terupdate sementara yang akan digunakan untuk menyimpan file yang diunggah. Dalam banyak kasus, Anda tidak perlu khawatir tentang pengaturan ini. Jika Anda tidak mengaturnya, sistem default temp directory akan digunakan

<?php echo php_ini_loaded_file(); ?>
_70

Arahan

<?php echo php_ini_loaded_file(); ?>
_70 memungkinkan Anda untuk mengkonfigurasi ukuran maksimum data POST. Karena file yang diunggah dengan permintaan POST, nilai ini harus lebih besar dari yang Anda tetapkan untuk perintah
<?php echo php_ini_loaded_file(); ?>
66. Misalnya, jika
<?php echo php_ini_loaded_file(); ?>
66 Anda
<?php echo php_ini_loaded_file(); ?>
76 (16 megabyte), Anda mungkin ingin memasang
<?php echo php_ini_loaded_file(); ?>
70 menjadi ________4______78

<?php echo php_ini_loaded_file(); ?>
_79

Ini memungkinkan Anda untuk mengatur jumlah maksimum file yang dapat diunggah pada suatu waktu. Standarnya adalah

<?php echo php_ini_loaded_file(); ?>
_80, jumlah yang masuk akal

<?php echo php_ini_loaded_file(); ?>
_81

Ini adalah jumlah skrip kedua maksimum yang diizinkan untuk mengekstrak data masukan. Anda harus menetapkannya ke nilai yang wajar jika Anda menangani unggahan file besar.

<?php echo php_ini_loaded_file(); ?>
82 (60 detik) adalah nilai yang bagus untuk sebagian besar aplikasi

<?php echo php_ini_loaded_file(); ?>
_83

Directivf

<?php echo php_ini_loaded_file(); ?>
_83 menunjukkan jumlah memori maksimum yang dapat dikonsumsi script. Jika Anda mengalami masalah saat mengunggah file berukuran besar, Anda harus memastikan bahwa nilai dari arahan ini lebih besar dari yang Anda tetapkan untuk arahan
<?php echo php_ini_loaded_file(); ?>
70. Nilai default adalah
<?php echo php_ini_loaded_file(); ?>
_86 (128 megabyte), jadi kecuali Anda memiliki
<?php echo php_ini_loaded_file(); ?>
70 yang sangat besar dan
<?php echo php_ini_loaded_file(); ?>
66, Anda tidak perlu khawatir tentang hal ini

<?php echo php_ini_loaded_file(); ?>
_89

Jumlah detik maksimum skrip yang diizinkan untuk dijalankan. Jika Anda menghadapi masalah saat mengunggah file berukuran besar, Anda dapat mempertimbangkan untuk meningkatkan nilai ini.

<?php echo php_ini_loaded_file(); ?>
90 (30 detik) seharusnya berfungsi dengan baik untuk sebagian besar aplikasi

Sekarang mari kita membuat contoh nyata untuk mendemonstrasikan pengunggahan file dalam PHP

Membuat Form HTML

Setelah Anda mengonfigurasi pengaturan PHP, Anda siap untuk mencoba kemampuan mengunggah file PHP

Repositori GitHub kami memiliki beberapa kode contoh yang akan saya bahas di seluruh artikel ini. Jadi, jika Anda ingin ikut, lanjutkan dan unduh dari GitHub

Kita akan membuat dua file PHP. indeks. php dan unggah. php. Indeks file. php berisi kode yang bertanggung jawab untuk menampilkan form upload file. Di sisi lain, unggah file. php bertanggung jawab untuk mengunggah file ke server

Juga, file akan diunggah di direktori upload_files, jadi Anda perlu memastikan bahwa folder ini ada dan dapat ditulis oleh pengguna ________4______91

Di bagian ini, kita akan membahas bagian-bagian kunci dari file index. php

Mari kita lihat di file index. php pada GitHub

1
; Whether to allow HTTP file uploads.
6
2
; Whether to allow HTTP file uploads.
8
3
2
0
4
2
2
5
2
4
<?php echo php_ini_loaded_file(); ?>
1
2
6
<?php echo php_ini_loaded_file(); ?>
3
2
8
<?php echo php_ini_loaded_file(); ?>
4
file_uploads = On
0
<?php echo php_ini_loaded_file(); ?>
6
file_uploads = On
2
<?php echo php_ini_loaded_file(); ?>
8
file_uploads = On
4
<?php echo php_ini_loaded_file(); ?>
9
file_uploads = On
6
1
1
file_uploads = On
8
1
3
3
0
1
4
3
2
1
6
3
4
1
8
3
6
1
9
3
8
; Whether to allow HTTP file uploads.
1
4
0
; Whether to allow HTTP file uploads.
3
4
2
4
3
4
4
4
5
4
6
4
7
4
8
4
9
; Temporary directory for HTTP uploaded files.
0
; Temporary directory for HTTP uploaded files.
1
; Temporary directory for HTTP uploaded files.
2
; Temporary directory for HTTP uploaded files.
3
; Temporary directory for HTTP uploaded files.
4
; Temporary directory for HTTP uploaded files.
5

Meskipun mungkin terlihat seperti bentuk PHP yang khas, ada perbedaan penting dalam nilai atribut

<?php echo php_ini_loaded_file(); ?>
92 dari tag
<?php echo php_ini_loaded_file(); ?>
93. Ini perlu diatur ke
<?php echo php_ini_loaded_file(); ?>
_94 karena form berisi file field

Atribut

<?php echo php_ini_loaded_file(); ?>
_92 menentukan jenis pengkodean yang harus digunakan ketika formulir dikirimkan, dan dibutuhkan salah satu dari tiga nilai berikut

  • <?php echo php_ini_loaded_file(); ?>
    
    _96. ini adalah nilai default ketika Anda tidak menetapkan nilai dari atribut
    <?php echo php_ini_loaded_file(); ?>
    
    92 secara eksplisit. Dalam hal ini, karakter dikodekan sebelum dikirim ke server. Jika Anda tidak memiliki file field dalam form Anda, Anda harus menggunakan value ini untuk atribut
    <?php echo php_ini_loaded_file(); ?>
    
    92
  • <?php echo php_ini_loaded_file(); ?>
    
    _94. Ketika Anda menggunakan nilai
    <?php echo php_ini_loaded_file(); ?>
    
    _94 untuk atribut
    <?php echo php_ini_loaded_file(); ?>
    
    92, ini memungkinkan Anda untuk mengunggah file menggunakan metode POST. Juga, memastikan bahwa karakter tidak dikodekan saat formulir dikirimkan
  • 1
    _02. Ini umumnya tidak digunakan. Dengan pengaturan ini, data dikirim tanpa dikodekan

Selanjutnya, kami menampilkan kolom file, yang memungkinkan Anda memilih file dari komputer Anda

1
; Temporary directory for HTTP uploaded files.
7

Selain itu, kami telah menampilkan pesan di bagian atas form. Pesan ini menunjukkan status unggahan file, dan itu akan di set dalam sesi variabel dengan script upload. php. Kita akan melihat lebih lanjut tentang ini di bagian selanjutnya

1
; Whether to allow HTTP file uploads.
6
2
file_uploads = On
6
3
file_uploads = On
8
4
3
0
5
3
2
<?php echo php_ini_loaded_file(); ?>
1
<?php
 if (isset($_POST['save'])){
 $fileName = $_FILES['gambar']['name'];
  // Simpan di Folder Gambar
  move_uploaded_file($_FILES['gambar']['tmp_name'], "gambar/".$_FILES['gambar']['name']);
  echo"<script>alert('Gambar Berhasil diupload !');history.go(-1);</script>";
 }
?>
_11_______4
<?php echo php_ini_loaded_file(); ?>
3________9______0

Jadi itu meringkas file index. php. Di bagian selanjutnya, kita akan melihat cara menangani file yang diunggah di sisi server

Membuat Upload Logika

Pada bagian sebelumnya, kami membuat form HTML yang ditampilkan di sisi klien dan memungkinkan Anda untuk mengunggah file dari komputer Anda. Di bagian ini, kita akan melihat mitra sisi server yang memungkinkan Anda menangani file yang diunggah

Tarik kode dari unggahan file. php di GitHub. Kita akan membahas bagian penting dari file itu

Di upload file. php, kami telah memeriksa apakah permintaan POST yang valid di tempat pertama

1
<?php echo php_ini_loaded_file(); ?>
03
2
<?php echo php_ini_loaded_file(); ?>
05
3
<?php echo php_ini_loaded_file(); ?>
07

Di PHP, ketika file diunggah, variabel superglobal

1
03 diisi dengan semua informasi tentang file yang diunggah. Ini diinisialisasi sebagai array dan dapat berisi informasi berikut untuk mengunggah file yang sukses

  • 1
    _04. Jalur sementara file yang diunggah disimpan dalam variabel ini
  • 1
    _05. Nama sebenarnya dari file disimpan dalam variabel ini
  • ukuran. menunjukkan ukuran file upload dalam byte
  • 1
    _06. berisi jenis unggahan file mime
  • 1
    _07. Jika ada kesalahan saat mengunggah file, variabel ini diisi dengan pesan error yang sesuai. Dalam kasus pengunggahan file yang berhasil, ini berisi 0, yang dapat Anda bandingkan dengan menggunakan konstanta
    1
    08

Setelah memvalidasi permintaan POST, kami memeriksa bahwa unggahan file berhasil

1
<?php echo php_ini_loaded_file(); ?>
09
2
<?php echo php_ini_loaded_file(); ?>
05
3
<?php echo php_ini_loaded_file(); ?>
07

Anda dapat melihat bahwa variabel

1
_03 adalah array multi-dimensi, elemen pertama adalah nama file field, dan elemen kedua memiliki informasi tentang file yang diunggah, seperti yang baru saja kami bahas di atas

Jika unggahan file berhasil, kami menginisialisasi beberapa variabel dengan informasi tentang file yang diunggah

1
<?php echo php_ini_loaded_file(); ?>
15
2
<?php echo php_ini_loaded_file(); ?>
17
3
<?php echo php_ini_loaded_file(); ?>
19
4
<?php echo php_ini_loaded_file(); ?>
21
5
<?php echo php_ini_loaded_file(); ?>
23
<?php echo php_ini_loaded_file(); ?>
1
<?php echo php_ini_loaded_file(); ?>
25
<?php echo php_ini_loaded_file(); ?>
3
<?php echo php_ini_loaded_file(); ?>
27

Dalam cuplikan di atas, kami juga menemukan ekstensi file yang diunggah dan menyimpannya dalam variabel

1
10

Karena file yang diunggah mungkin berisi spasi dan karakter khusus lainnya, lebih baik untuk membersihkan nama file, dan itu tetap yang telah kami lakukan di cuplikan berikut

1
<?php echo php_ini_loaded_file(); ?>
_29

Sangat penting bahwa Anda membatasi jenis file yang dapat diunggah ke ekstensi tertentu dan tidak mempublikasikan semuanya menggunakan formulir unggahan. Kita telah melakukannya dengan memeriksa ekstensi file yang diunggah dengan ekstensi ekstensi yang ingin kita izinkan untuk mengunggah

1
<?php echo php_ini_loaded_file(); ?>
31
2
<?php echo php_ini_loaded_file(); ?>
33
3
<?php echo php_ini_loaded_file(); ?>
05
4
<?php echo php_ini_loaded_file(); ?>
07

Terakhir, kita menggunakan fungsi

1
11 untuk memindahkan file yang diunggah ke lokasi spesifik pilihan kita

1
<?php echo php_ini_loaded_file(); ?>
39
2
<?php echo php_ini_loaded_file(); ?>
41
3
<?php echo php_ini_loaded_file(); ?>
43
4
5
<?php echo php_ini_loaded_file(); ?>
46
<?php echo php_ini_loaded_file(); ?>
1
<?php echo php_ini_loaded_file(); ?>
48
<?php echo php_ini_loaded_file(); ?>
3
<?php echo php_ini_loaded_file(); ?>
50
<?php echo php_ini_loaded_file(); ?>
4
<?php echo php_ini_loaded_file(); ?>
07
<?php echo php_ini_loaded_file(); ?>
6
<?php echo php_ini_loaded_file(); ?>
54
<?php echo php_ini_loaded_file(); ?>
8
<?php echo php_ini_loaded_file(); ?>
48
<?php echo php_ini_loaded_file(); ?>
9
<?php echo php_ini_loaded_file(); ?>
58
1
1
<?php echo php_ini_loaded_file(); ?>
07

Fungsi

1
_11 membutuhkan dua argumen. Argumen pertama adalah nama file dari file yang diunggah, dan argumen kedua adalah jalur tujuan di mana Anda ingin memindahkan file

Terakhir, kita arahkan pengguna ke file index. php. Juga, kita mengatur pesan yang sesuai dalam sesi variabel, yang akan ditampilkan kepada pengguna setelah dihapus dalam file index. php

Bagaimana Semua Ini Bekerja Bersama

Jangan lupa untuk membuat direktori upload_files dan membuatnya dapat ditulis oleh pengguna web-server. Selanjutnya, lanjutkan dan jalankan file index. php, yang seharusnya menampilkan form pengunggahan file yang terlihat seperti ini

Skrip php unggah file ke database
Skrip php unggah file ke database
Skrip php unggah file ke database

Klik pada tombol Browse - yang akan membuka kotak dialog yang memungkinkan Anda untuk memilih file dari komputer Anda. Pilih file dengan salah satu ekstensi yang diperbolehkan di script kita, dan klik tombol Unggah

Itu harus mengirimkan formulir, dan jika semuanya berjalan dengan baik, Anda akan melihat file yang diunggah di direktori upload_files. Anda juga dapat mencoba mengunggah file lain dengan ekstensi yang tidak diizinkan, dan memeriksa apakah skrip kita mencegah unggahan tersebut

Kesimpulan

Hari ini, kita membahas dasar-dasar upload file dalam PHP. Di paruh pertama artikel, kita membahas berbagai opsi konfigurasi yang harus ada agar file pengunggahan berfungsi. Kemudian kita melihat contoh dunia nyata yang menunjukkan bagaimana file upload berfungsi di PHP

Saya harap Anda menikmati artikel ini, dan jangan ragu untuk memposting pertanyaan dan saran Anda di bawah ini