PHP File Upload

PHP, mungkin anda untuk meng-upload file ke server. 



Form Upload PHP

PHP sangat berguna untuk memungkinkan pengguna meng-upload file dari formulir. Lihatlah bentuk HTML berikut untuk meng-upload file:


<html>
<body>

<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>

</body>
</html>


Perhatikan beberapa hal tentang bentuk HTML di atas: 


  • Enctype atribut dari tag <form> menentukan jenis content-type yang digunakan saat mengirimkan formulir. "multipart / form-data" digunakan ketika form memerlukan data biner, seperti isi dari sebuah file, untuk diupload 
  • Atribut type = "file"  dari tag <input> menentukan bahwa input harus diproses sebagai file. 

Catatan: Mengizinkan pengguna untuk meng-upload file adalah resiko besar pada keamanan website. Berikan authorize pada pengguna yang berhak.



Upload Script

Berikut ini isi dari upload_file.php


<?php
if ($_FILES["file"]["error"] > 0)
  {
  echo "Error: " . $_FILES["file"]["error"] . "<br />";
  }
else
  {
  echo "Upload: " . $_FILES["file"]["name"] . "<br />";
  echo "Type: " . $_FILES["file"]["type"] . "<br />";
  echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
  echo "Stored in: " . $_FILES["file"]["tmp_name"];
  }
?>


Dengan menggunakan global PHP array $_FILES, anda dapat meng-upload file dari komputer client ke server. Parameter pertama adalah nama input form dan indeks kedua dapat berupa "name", "type", "size", "tmp_name" atau "error". Seperti ini: 

  • $ _FILES ["File"] ["name"] - nama dari file upload 
  • $ _FILES ["File"] ["type"] - jenis file upload 
  • $ _FILES ["File"] ["size"] - ukuran dalam byte dari file upload 
  • $ _FILES ["File"] ["tmp_name"] - nama salinan sementara dari file yang tersimpan di server 
  • $ _FILES ["File"] ["error"] - kode kesalahan yang dihasilkan dari file upload 

Ini adalah cara yang sangat sederhana untuk meng-upload file. Untuk alasan keamanan, anda harus menambahkan aturan pada pengguna diperbolehkan untuk meng-upload.



Batasan Upload 

Dalam script ini kita menambahkan beberapabatasan untuk file upload. Pengguna hanya dapat meng-upload gif atau file jpeg dan ukuran file harus di bawah 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 "Error: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br />";
    echo "Type: " . $_FILES["file"]["type"] . "<br />";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
    echo "Stored in: " . $_FILES["file"]["tmp_name"];
    }
  }
else
  {
  echo "Invalid file";
  }
?>



Menyimpan File Upload

Contoh di atas membuat salinan sementara dari file yang diupload dalam folder PHP di server. Sementara file yang disalin dihapus ketika proses berakhir. Untuk menyimpan file upload kita perlu menyalinnya ke lokasi yang berbeda:


<?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 "Return Code: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br />";
    echo "Type: " . $_FILES["file"]["type"] . "<br />";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
    echo "Temp file: " . $_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 "Stored in: " . "upload/" . $_FILES["file"]["name"];
      }
    }
  }
else
  {
  echo "Invalid file";
  }
?>
 
Bagikan halaman ke sosial media
 
 
 

   Komentar Anda