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!

PHP - File Uploading

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:

  1. action="upload.php": Ini memberitahu borang kemana data akan dikirim. Dalam kes ini, kita akan membuat skrip PHP yang dipanggil upload.php untuk mengendalikan pemuatan fail.
  2. method="post": Ini menentukan bahawa kita menggunakan kaedah POST untuk mengirim data.
  3. enctype="multipart/form-data": Ini penting! Ia memberitahu borang bahawa kita mengirim lebih daripada hanya teks - kita mengirim fail.
  4. <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:

  1. Pertama, kita semak jika borang telah dihantar menggunakan isset($_POST["submit"]).
  2. 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.
  1. Kita membuat beberapa semakan:
  • Adakah fail itu sudah wujud di folder muat naik kita?
  • Adakah fail itu terlalu besar?
  • Adakah format fail itu dibenarkan?
  1. Jika mana-mana semakan ini gagal, kita set $uploadOk ke 0.

  2. Akhirnya, jika segala-galanya baik ($uploadOk == 1), kita gunakan fungsi move_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