PHP - Unggahan File
Halo sana, para pengembang PHP yang bersemangat! Hari ini, kita akan melihat dunia yang menarik dari unggahan file menggunakan PHP. Sebagai guru komputer yang ramah di lingkungan Anda, saya di sini untuk menghidahkan Anda dalam perjalanan ini langkah demi langkah. Jadi, ambil minumannya yang favorit, nyamanlah, dan mari kita mulai petualangan unggahan file ini bersama!
Mengenali Unggahan File
Sebelum kita masuk ke dalam kode, mari kitaambil waktu untuk memahami apa itu unggahan file. Bayangkan Anda mengirim surat kepada teman Anda. Anda menulis surat, memasukkannya ke dalam amplop, dan mengirimkannya melalui layanan pos. Unggahan file hampir sama! instead of a letter, Anda mengirimkan file (seperti gambar atau dokumen) dari komputer Anda ke server web.
Membuat Form Unggahan File
Langkah pertama dalam perjalanan unggahan file kita adalah membuat form HTML yang memungkinkan pengguna untuk memilih dan mengunggah file. Picturing this form as the envelope we use to send our letter.
Mari kita buat form HTML sederhana:
<form action="upload.php" method="post" enctype="multipart/form-data">
Pilih gambar untuk diunggah:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Unggah Gambar" name="submit">
</form>
mari kitauraikan ini:
-
action="upload.php"
: Ini mengatakan pada form kemana data akan dikirim. Dalam hal ini, kita akan membuat skrip PHP yang disebutupload.php
untuk menghandle unggahan file. -
method="post"
: Ini menentukan bahwa kita menggunakan metode POST untuk mengirim data. -
enctype="multipart/form-data"
: Ini sangat penting! Ini mengatakan pada form bahwa kita mengirim lebih dari hanya teks - kita mengirim file. -
<input type="file">
: Ini membuat tombol yang memungkinkan pengguna untuk memilih file dari komputer mereka.
Membuat Skrip Unggahan
Sekarang kita memiliki form, kita perlu membuat skrip PHP yang akan menghandle unggahan file. Ini adalah tempat magik terjadi!
Mari kita buat file upload.php
:
<?php
if(isset($_POST["submit"])) {
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Periksa jika file sudah ada
if (file_exists($target_file)) {
echo "Maaf, file sudah ada.";
$uploadOk = 0;
}
// Periksa ukuran file
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Maaf, file Anda terlalu besar.";
$uploadOk = 0;
}
// Izinkan format file tertentu
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Maaf, hanya file JPG, JPEG, PNG & GIF yang diizinkan.";
$uploadOk = 0;
}
// Periksa jika $uploadOk diatur ke 0 oleh kesalahan
if ($uploadOk == 0) {
echo "Maaf, file Anda tidak diunggah.";
// Jika semuanya baik, cobalah untuk mengunggah file
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "File ". basename( $_FILES["fileToUpload"]["name"]). " telah diunggah.";
} else {
echo "Maaf, terjadi kesalahan saat mengunggah file Anda.";
}
}
}
?>
Wah, ini banyak kode! Jangan khawatir, kita akan membongkar ini langkah demi langkah:
- Pertama, kita periksa jika form sudah dikirimkan menggunakan
isset($_POST["submit"])
. - Kita mengatur beberapa variabel:
-
$target_dir
: Direktori tempat kita akan menyimpan file yang diunggah. -
$target_file
: Path lengkap file yang diunggah. -
$uploadOk
: Flag untuk melacak jika itu baik untuk mengunggah file. -
$imageFileType
: Ekstensi file yang diunggah.
- Kita melakukan beberapa pemeriksaan:
- Apakah file sudah ada di folder unggah kita?
- Apakah file terlalu besar?
- Apakah format file diizinkan?
-
Jika salah satu pemeriksaan ini gagal, kita mengatur
$uploadOk
ke 0. -
Akhirnya, jika semuanya baik (
$uploadOk == 1
), kita gunakan fungsimove_uploaded_file()
untuk memindahkan file yang diunggah dari lokasi sementara ke folder unggah kita.
Metode Unggahan File Umum
Berikut adalah tabel metode umum yang digunakan dalam unggahan file PHP:
Metode | Deskripsi |
---|---|
$_FILES["file"]["name"] |
Nama asli file di komputer klien |
$_FILES["file"]["type"] |
Tipe MIME file |
$_FILES["file"]["size"] |
Ukuran file dalam byte |
$_FILES["file"]["tmp_name"] |
Nama file sementara yang disimpan di server |
$_FILES["file"]["error"] |
Kode kesalahan terkait dengan unggahan file |
move_uploaded_file() |
Memindahkan file yang diunggah ke lokasi baru |
Kesimpulan
Dan begitu juga, teman-teman! Kita telah membuat form yang memungkinkan pengguna untuk memilih file, dan skrip PHP yang menghandle proses unggahan, lengkap dengan pemeriksaan kesalahan dan batasan jenis file.
Ingat, unggahan file bisa menjadi risiko keamanan jika tidak ditangani dengan baik. Selalu validasi dan sanitasi masukan pengguna, batasi jenis dan ukuran file, dan simpan file yang diunggah di direktori yang tidak dapat diakses langsung melalui browser web.
Saat kita mengakhiri pelajaran ini, saya teringat tentang seorang siswa yang pernah mengunggah file video 1GB ke situs yang dimaksudkan untuk foto profil. Katakanlah saja, itu tidak berakhir baik bagi server! Jadi selalu ingat untuk menyetel batasan ukuran file, teman-teman!
Terus latih, terus coding, dan terutama, terus bersenang-senang dengan PHP! Sampaijumpa lagi, selamat unggahan!
Credits: Image by storyset