Pendahuluan
Tabel Konten
Pada artikel sebelumya kita sering sekali menggunakan data berbentuk angka atau atau kata (kalimat). Kali ini kita akan membuat data yang berbentuk file atau foto yang biasanya digunakan untuk memperjelas informasi dari data yang disampaikan.
Kita sesungguhnya tidak menyimpan mentah-mentah file atau gambar tersebut tetapi hanya lokasinya saja. Mengapa lokasinya karena kita mengunggahnya ke folder/tempat yang disiapkan pada server.
Persiapan
Sebelum menggunakan upload file mari setting pengaturan di php.ini yang berisi line file_uploads untuk di atur jadi On
file_uploads = On
. Untuk membuat upload gambar atau file kita memerlukan ini:>PHP
>Code Editor
Pembuatan Upload File atau Gambar
Untuk membuatnya kita harus membuat file yang bernama unggah.php yang berfungsi untuk mmbuat formulir pengunggahan dan mengunggahnya ke server.
<?php$status ="Silahkan upload 1 gambar";if(isset($_POST['submit'])){ $filename = $_FILES['file']['name']; try{ move_uploaded_file($_FILES['file']['tmp_name'],'upload/'.$filename); $status = htmlspecialchars( basename( $_FILES["file"]["name"])). " sukses terupload"; }catch(Exception $e){ $status = $e; }catch(Error $e){ $status = $e; }}echo $status;?><form method='post' enctype='multipart/form-data'> <input type="file" name="file" id="file" multiple>
<input type='submit' name='submit' value='Upload'></form>
Pembuatan Upload Banyak File atau Gambar
Berikut ini merupakan skrip kode untuk menggunggah banyak file dan (atau) gambar.
<?php if(isset($_POST['submit'])){ // Count total files $countfiles = count($_FILES['file']['name']);
// Looping all files for($i=0;$i<$countfiles;$i++){ $filename = $_FILES['file']['name'][$i]; // Upload file move_uploaded_file($_FILES['file']['tmp_name'][$i],'upload/'.$filename); }} ?><form method='post' enctype='multipart/form-data'> <input type="file" name="file[]" id="file" multiple>
<input type='submit' name='submit' value='Upload'></form>
Skrip ini juga bisa digunakan dalam penyaringan menurut ukuran dan jenis file. Untuk tambahan $_FILES['file']['size'] digunakan untuk mengetahui ukuran file yang diunggah. Sedangkan $_FILES['file']['type'] mengetahui tipe filenya. Mari kita gunakan pada script kode yang sudah kita buat.
<?phpif(isset($_POST['submit'])){ $stat = 1; // Membuat fungsi penyaringan function Filtering(&$arrFiles){ $file_ary = array(); $file_count = count($arrFiles['name']); $file_keys = array_keys($arrFiles);
for ($i=0; $i<$file_count; $i++) { foreach ($file_keys as $key) { $file_ary[$i][$key] = $arrFiles[$key][$i]; } }
return $file_ary; } $file_ary = Filtering($_FILES['file']); // Memasukan semua file ke dalam fungsi penyaringan foreach ($file_ary as $file) { if ($file['size'] > 500000){ $stat = 0; print 'File terlalu besar' . $stat; } //untuk menyimpan lokasi file kamu bisa menggunakan variabel baru //yang berisi 'upload/'.basename($file['name']) //ini bisa digunakan untuk data pada database kamu. $TipeFile = strtolower(pathinfo( 'upload/'.basename($file['name']),PATHINFO_EXTENSION)); if($TipeFile != 'png' && $TipeFile != 'jpeg' && $TipeFile != 'jpg' && $TipeFile != 'gif'){ $stat = 0; print 'File bukan gambar' . $stat; } //hapus tanda untuk melihat informasi file print '<br />Nama File: ' . $file['name']; print '<br />Tipe File: ' . $TipeFile; print '<br />Ukuran File: ' . $file['size']; } $countfiles = count($_FILES['file']['name']); // Looping all files for($i=0;$i<$countfiles;$i++){ $filename = $_FILES['file']['name'][$i]; // Upload file if($stat == 1){ move_uploaded_file($_FILES['file']['tmp_name'][$i],'upload/'.$filename); print '<br />Sukses terunggah : upload/'.$filename; } }}?><form method='post' enctype='multipart/form-data'> <input type="file" name="file[]" id="file" multiple>
<input type='submit' name='submit' value='Upload'></form>
Diatas saya menggunakan satu fungsi yang sederhana untuk membuat semua file yang diunggah menjadi array. Dan menambahkan variabel $stat untuk memberi tanda bahwa file sudah sesuai dengan kriteria kita yakni tidak lebih dari 500k dan berekstensi gambar. Semoga bermanfaat Dan happy coding yah.
Tidak ada komentar:
Posting Komentar