18%
25%
50%
75%

Kripkorn Studios | Komuniti Drupal phpBB Malaysia

Muat naik fail (upload file)

Tutorial
PHP
Tentang artikel ini
Penulis: kripkorn -- Nov 10, 2008
kemas kini Kemas kini: Aug 12, 2011

Dengan menggunakan PHP, anda boleh memuat naik fail ke dalam pelayan web anda melalui pelayar web.

Mencipta borang muat naik

Untuk membolehkan pengguna mengupload fail kedalam pelayan web anda, menggunakan borang adalah jalan yang terbaik. Koding dibawah adalah koding untuk jadual bagi memboleh proses mengupload.

<html>
<body><form action="upload.php" method="post"
enctype="multipart/form-data">
<label for="file">Nama Fail:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Hantar" />
</form></body>
</html>

Mencipta auturcara muat naik

Aturcara untuk membolehkan fail dimuat naik ditulis di dalam fail "upload.php"

<?php
if ($_FILES["file"]["error"] > 0)
{
echo "Ralat: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Jenis: " . $_FILES["file"]["type"] . "<br />";
echo "Saiz: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Simpan: " . $_FILES["file"]["tmp_name"];
}
?>

Berikut adalah parameter yang digunakan

  • $_FILES["file"]["name"] - nama fail yang diupload
  • $_FILES["file"]["type"] - jenis fail
  • $_FILES["file"]["size"] - saiz dalam byte
  • $_FILES["file"]["tmp_name"] - nama direktori dimana fail tersebut disimpan
  • $_FILES["file"]["error"] - memaparkan ralat jika fail gagal diupload

Ini cara yang paling ringkas untuk mengupload fail. Untuk keselamatan, kita perlu meletakkan had bagi fail yang diupload

Had untuk muat naik

Dalam koding ini, kita hanya membenarkan pelayar mengupload fail berjenis .gif atau .jpeg sahaja. Dan saiznya mestila kurang dari 30kb

<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 30000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Ralat: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Jenis: " . $_FILES["file"]["type"] . "<br />";
echo "Saiz: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Simpan: " . $_FILES["file"]["tmp_name"];
}
}
else
{
echo "Fail tidak sah";
}?>

Menyimpan fail yang di muat naik

Koding diatas menggunakan direktori sementara untuk memindahkan fail dari komputer pelayar kepada pelayan web. Direktori tersebut ialah temp.

Fail yang disimpan dalam direktori tersebut akan hilang selepas koding selesai diproses, oleh itu kita mestila menyimpan fail yang diupload ke lokasi lain. Berikut adalah koding untuk memindahkan fail tersebut.

<?php
if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 30000))   {
  if ($_FILES["file"]["error"] > 0)     {
    echo "Ralat: " . $_FILES["file"]["error"] . "<br />";
  }   else     {
    echo "Upload: " . $_FILES["file"]["name"] . "<br />";
    echo "Jenis: " . $_FILES["file"]["type"] . "<br />";
    echo "Saiz: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
    echo "Direktori Sementara: " . $_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 "Simpan dalam: " . "upload/" . $_FILES["file"]["name"];
      }
  }
}
else
{
echo "Fail tidak sah";
}
?>