Pada tulisan ini saya akan membahas tentang membuat form upload file dengan menggunakan PHP.
Buat Form Upload-File
Untuk memungkinkan pengguna untuk meng-upload file dari formulir dapat sangat berguna.
Lihatlah bentuk HTML berikut untuk meng-upload file:
<html> <body> <form action="upload_file.php" method="post" enctype="multipart/form-data"> <label for="file">Filename:</label> <input type="file" name="file" id="file" /> <br /> <input type="submit" name="submit" value="Submit" /> </form> </body> </html>
Perhatikan hal berikut tentang form HTML di atas:
- Atribut enctype dari tag <form> menentukan yang content-type untuk digunakan saat mengirimkan formulir. “Multipart / form-data” digunakan bila form memerlukan data biner, seperti isi dari sebuah file, untuk di-upload
- Jenis = “file” atribut dari tag <input> menentukan bahwa input harus diproses sebagai file. Misalnya, bila dilihat dalam browser, akan ada Kuliah-tombol di sebelah kolom masukan
Catatan: Mengijinkan pengguna untuk upload file adalah resiko keamanan besar. Hanya mengizinkan pengguna terpercaya untuk melakukan upload file.
Buat Script Upload
The “upload_file.php” file berisi kode untuk meng-upload file:
?php if ($_FILES["file"]["error"] > 0) { echo "Error: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br />"; echo "Type: " . $_FILES["file"]["type"] . "<br />"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Stored in: " . $_FILES["file"]["tmp_name"]; } ?>
Dengan menggunakan PHP global $ _FILES array yang Anda dapat meng-upload file dari komputer klien ke server remote.
Parameter pertama adalah nama input form dan indeks kedua dapat berupa “nama”, “tipe”, “ukuran”, “tmp_name” atau “kesalahan”. Seperti ini:
- $ _FILES [“File”] [“nama”] – nama dari file upload
- $ _FILES [“File”] [“type”] – jenis dari file upload
- $ _FILES [“File”] [“size”] – ukuran dalam bytes dari file upload
- $ _FILES [“File”] [“tmp_name”] – nama sementara salinan file tersimpan di server
- $ _FILES [“File”] [“error”] – kode kesalahan yang dihasilkan dari file upload
Ini adalah cara yang sangat sederhana dari file upload. Untuk alasan keamanan, Anda harus menambahkan pembatasan pada apa yang user diperbolehkan untuk upload.
Pembatasan Upload
Pada script ini kita menambahkan beberapa pembatasan ke file upload. Pengguna hanya dapat meng-upload file gif atau jpeg dan ukuran file harus dibawah 20 kb..:
<?php if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 20000)) { if ($_FILES["file"]["error"] > 0) { echo "Error: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br />"; echo "Type: " . $_FILES["file"]["type"] . "<br />"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Stored in: " . $_FILES["file"]["tmp_name"]; } } else { echo "Invalid file"; } ?>
Catatan: Untuk IE untuk mengenali jenis file jpg harus pjpeg, untuk FireFox itu harus jpeg.
Menyimpan File Uploaded
Contoh di atas membuat copy sementara dari file upload di PHP folder temp di server.
Para sementara file yang disalin hilang ketika script berakhir. Untuk menyimpan file upload kita perlu menyalinnya ke lokasi yang berbeda:
<?php if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 20000)) { if ($_FILES["file"]["error"] > 0) { echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br />"; echo "Type: " . $_FILES["file"]["type"] . "<br />"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />"; if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " already exists. "; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); echo "Stored in: " . "upload/" . $_FILES["file"]["name"]; } } } else { echo "Invalid file"; } ?>
cript di atas memeriksa apakah file sudah ada, jika tidak, itu salinan file ke folder tertentu.
Catatan: Contoh ini menyimpan file ke folder baru bernama “upload”
source: http://www.w3schools.com/php/php_file_upload.asp