Unggah File PHP
- Halaman Sebelumnya Membuat dan Menulis Berkas PHP
- Halaman Berikutnya Cookies PHP
Dengan PHP, dapat mengunggah berkas ke server.
Buat formulir pengunggahan berkas
Memungkinkan pengguna untuk mengunggah berkas dari formulir sangat berguna.
Lihat formulir HTML untuk pengunggahan berkas di bawah ini:
<html> <body> <form action="upload_file.php" method="post" enctype="multipart/form-data"> <label for="file">Nama Berkas:</label> <input type="file" name="file" id="file" /> <br /> <input type="submit" name="submit" value="Submit" /> </form> </body> </html>
Harap perhatikan informasi berikut tentang formulir ini:
Atribut enctype dari tag <form> menentukan jenis tipe konten yang akan digunakan saat mengirimkan formulir. Saat formulir memerlukan data biner, seperti konten berkas, gunakan "multipart/form-data".
Atribut type="file" dari tag <input> menentukan bahwa masukan harus diproses sebagai berkas. Sebagai contoh, saat di preview di browser, akan terlihat tombol browse disamping kotak input.
Keterangan:Memungkinkan pengguna untuk mengunggah berkas adalah resiko keamanan yang besar. Hanya memungkinkan pengguna yang terpercaya untuk melaksanakan operasi pengunggahan berkas.
Buat skrip pengunggahan
"upload_file.php" berisi kode untuk mengunggah berkas:
<?php if ($_FILES["file"]["error"] > 0) { echo "Kesalahan: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Unggah: " . $_FILES["file"]["name"] . "<br />"; echo "Tipe: " . $_FILES["file"]["type"] . "<br />"; echo "Ukuran: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Disimpan di: " . $_FILES["file"]["tmp_name"]; } ?>
Dengan menggunakan array global PHP $_FILES, Anda dapat mengunggah berkas dari komputer pelanggan ke server jauh.
Parameter pertama adalah input name formulir, parameter kedua dapat berupa "name", "type", "size", "tmp_name", atau "error". Seperti ini:
- $_FILES["file"]["name"] - Nama berkas yang diunggah
- $_FILES["file"]["type"] - Tipe berkas yang diunggah
- $_FILES["file"]["size"] - Ukuran berkas yang diunggah, dalam byte
- $_FILES["file"]["tmp_name"] - Nama salinan sementara berkas yang disimpan di server
- $_FILES["file"]["error"] - Kode kesalahan yang disebabkan oleh pengunggahan berkas
Ini adalah cara pengunggahan berkas yang sangat sederhana. Dengan pertimbangan keamanan, Anda seharusnya menambahkan batasan tentang siapa yang berhak mengunggah berkas.
Batasan pengunggahan
Dalam skrip ini, kami menambahkan batasan pengunggahan berkas. Pengguna hanya dapat mengunggah berkas .gif atau .jpeg, ukuran berkas harus kurang dari 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 "Kesalahan: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Unggah: " . $_FILES["file"]["name"] . "<br />"; echo "Tipe: " . $_FILES["file"]["type"] . "<br />"; echo "Ukuran: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Disimpan di: " . $_FILES["file"]["tmp_name"]; } } else { echo "Berkas Tidak Valid"; } ?>
Keterangan:Untuk IE, pengenalan tipe berkas jpg harus pjpeg, untuk FireFox, harus jpeg.
Simpan berkas yang diunggah
Contoh di atas membuat salinan sementara berkas yang diunggah di folder sementara PHP di server.
Salin sementara ini akan menghilang saat skrip selesai. Untuk menyimpan berkas yang diunggah, kami perlu menyalinnya ke lokasi lain:
<?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 "Kode Balik: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Unggah: " . $_FILES["file"]["name"] . "<br />"; echo "Tipe: " . $_FILES["file"]["type"] . "<br />"; echo "Ukuran: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo " Berkas Sementara: " . $_FILES["file"]["tmp_name"] . "<br />"; if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " sudah ada. "; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); echo "Disimpan di: " . "upload/" . $_FILES["file"]["name"]; } } } else { echo "Berkas Tidak Valid"; } ?>
Skrip di atas memeriksa apakah berkas ini sudah ada, jika tidak, berkas akan disalin ke folder yang ditentukan.
Keterangan:Contoh ini menyimpan berkas ke folder baru yang dinamai "upload".
- Halaman Sebelumnya Membuat dan Menulis Berkas PHP
- Halaman Berikutnya Cookies PHP