PHP - Pemuatan Fail
Hai sana, para pengembang PHP yang bersemangat! Hari ini, kita akan melihat dunia yang menarik pemuatan fail menggunakan PHP. Sebagai guru komputer yang ramah di lingkungan sekitar Anda, saya di sini untuk memandu Anda melalui perjalanan ini langkah demi langkah. Jadi, ambil minuman kesukaan Anda, duduk dengan nyaman, dan mari kita mulai petualangan pemuatan fail ini bersama!
Mengenali Pemuatan Fail
Sebelum kita masuk ke kode, mari kitaambil sedikit waktu untuk memahami apa itu pemuatan fail. Bayangkan Anda mengirim surat kepada seorang teman. Anda menulis surat, memasukkannya dalam amplop, dan mengirimkannya melalui perkhidmatan pos. Pemuatan fail sangat mirip! Daripada surat, Anda mengirim fail (seperti imej atau dokumen) dari komputer Anda ke pelayan web.
Membuat Borang Pemuatan Fail
Langkah pertama dalam perjalanan pemuatan fail kita adalah membuat borang HTML yang membolehkan pengguna memilih dan memuat naik fail. Anggap borang ini sebagai amplop yang kami gunakan untuk mengirim surat.
Mari kita buat borang HTML ringkas:
<form action="upload.php" method="post" enctype="multipart/form-data">
Pilih imej untuk dimuat naik:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Muat Naik Imej" name="submit">
</form>
mari kitaongkoskan ini:
-
action="upload.php"
: Ini memberitahu borang kemana data akan dikirim. Dalam kes ini, kita akan membuat skrip PHP yang dipanggilupload.php
untuk mengendalikan pemuatan fail. -
method="post"
: Ini menentukan bahawa kita menggunakan kaedah POST untuk mengirim data. -
enctype="multipart/form-data"
: Ini penting! Ia memberitahu borang bahawa kita mengirim lebih daripada hanya teks - kita mengirim fail. -
<input type="file">
: Ini membuat butang yang membolehkan pengguna memilih fail daripada komputer mereka.
Membuat Skrip Pemuatan
Sekarang kita ada borang, kita perlu membuat skrip PHP yang akan mengendalikan pemuatan fail. Ini di mana magik berlaku!
Mari kita buat fail upload.php
kami:
<?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));
// Semak jika fail sudah wujud
if (file_exists($target_file)) {
echo "Maaf, fail sudah wujud.";
$uploadOk = 0;
}
// Semak saiz fail
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Maaf, fail Anda terlalu besar.";
$uploadOk = 0;
}
// Benarkan format fail tertentu
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Maaf, hanya fail JPG, JPEG, PNG & GIF sahaja yang dibenarkan.";
$uploadOk = 0;
}
// Semak jika $uploadOk di set ke 0 oleh kesalahan
if ($uploadOk == 0) {
echo "Maaf, fail Anda tidak dimuat naik.";
// Jika segala-galanya baik, cuba muat naik fail
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "Fail ". basename( $_FILES["fileToUpload"]["name"]). " telah dimuat naik.";
} else {
echo "Maaf, terdapat kesalahan dalam memuat naik fail Anda.";
}
}
}
?>
Wah, ini banyak kode! Jangan bimbang, kita akan menguraikan ini langkah demi langkah:
- Pertama, kita semak jika borang telah dihantar menggunakan
isset($_POST["submit"])
. - Kita tetapkan beberapa pembolehubah:
-
$target_dir
: Direktori di mana kita akan menyimpan fail yang dimuat naik. -
$target_file
: Lokasi penuh fail yang dimuat naik. -
$uploadOk
: Bendera untuk mengesan jika ia baik untuk memuat naik fail. -
$imageFileType
: Sambungan fail yang dimuat naik.
- Kita membuat beberapa semakan:
- Adakah fail itu sudah wujud di folder muat naik kita?
- Adakah fail itu terlalu besar?
- Adakah format fail itu dibenarkan?
-
Jika mana-mana semakan ini gagal, kita set
$uploadOk
ke 0. -
Akhirnya, jika segala-galanya baik (
$uploadOk == 1
), kita gunakan fungsimove_uploaded_file()
untuk memindahkan fail dimuat naik daripada lokasi sementara ke folder muat naik kita.
Kaedah Pemuatan Fail Umum
Berikut adalah jadual kaedah umum yang digunakan dalam pemuatan fail PHP:
Kaedah | Keterangan |
---|---|
$_FILES["file"]["name"] |
Nama asal fail di komputer klien |
$_FILES["file"]["type"] |
Jenis MIME fail |
$_FILES["file"]["size"] |
Saiz fail dalam bait |
$_FILES["file"]["tmp_name"] |
Nama fail sementara yang disimpan di pelayan |
$_FILES["file"]["error"] |
Kod kesalahan yang berkaitan dengan pemuatan fail |
move_uploaded_file() |
Pindahkan fail dimuat naik ke lokasi baru |
Kesimpulan
Dan di situ Anda ada, rakan-rakan! Kita telah membuat borang yang membolehkan pengguna memilih fail, dan skrip PHP yang mengendalikan proses pemuatan fail, lengkap dengan semakan kesalahan dan pengehadan jenis fail.
Ingat, pemuatan fail boleh menjadi risiko keselamatan jika tidak diurus dengan baik. Sentiasa validasi dan sanitasi input pengguna, kehadiran jenis fail dan saiz fail, dan menyimpan fail yang dimuat naik dalam direktori yang tidak boleh diakses secara langsung melalui pelayar web.
Sementara kita menyempurnakan pelajaran ini, saya diingatkan tentang seorang pelajar yang pernah memuat naik fail video 1GB ke laman web yang dimaksudkan untuk gambar profil. Katakanlah, ia tidak berakhir dengan baik bagi pelayan! Jadi, sentiasa ingat untuk menetapkan had saiz fail, rakan-rakan!
Terus latih, terus kod, dan terutamanya, terus bersenang-senang dengan PHP! Sampaijumpa lagi, selamat pemuatan fail!
Credits: Image by storyset