Script PHP untuk Upload

Buat Form Upload-File

Untuk memungkinkan pengguna untuk meng-upload file dari formulir dapat sangat berguna. 
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 yang berikut tentang bentuk HTML di atas: 

* Atribut enctype dari tag <form> yang menentukan content-type untuk digunakan ketika mengirimkan formulir. "multipart / form-data" digunakan ketika membentuk memerlukan data biner, seperti isi dari sebuah file, untuk diupload

* Jenis = "file" atribut dari tag <input> menentukan bahwa input harus diproses sebagai file. Sebagai contoh, bila dilihat dalam browser, akan ada isi-tombol di sebelah field input

Catatan: Mengizinkan pengguna untuk meng-upload file adalah resiko keamanan besar. Hanya mengizinkan pengguna terpercaya untuk melakukan upload file.


Buat Script Upload

The "upload_file.php" file berisi kode untuk meng-upload file:

<?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 PHP global $ _FILES array yang Anda dapat meng-upload file dari komputer klien ke server remote.

Parameter pertama adalah nama input form dan indeks kedua dapat berupa "nama", "tipe", "ukuran", "tmp_name" atau "kesalahan". Seperti ini:

     * $ _FILES ["File"] ["nama"] - nama dari file upload
     * $ _FILES ["File"] ["tipe"] - jenis dari 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 upload file

Ini adalah cara yang sangat sederhana dari file upload. Untuk alasan keamanan, Anda harus menambahkan pembatasan pada apa yang user diperbolehkan untuk upload.

Pembatasan Upload

Dalam script ini kita menambahkan beberapa pembatasan untuk upload file. Pengguna hanya dapat meng-upload file gif atau jpeg dan ukuran file harus dibawah 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";
  }
?>

Catatan: Untuk IE untuk mengenali file jpg jenisnya harus pjpeg, untuk FireFox harus jpeg.

Menyimpan File Uploaded

Contoh di atas membuat copy sementara dari file upload di PHP folder temp di server.

Temporary file yang disalin hilang ketika script 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";
  }
?>     

Script di atas mengecek apakah file sudah ada, jika tidak, itu salinan file ke folder tertentu.

Catatan: Contoh ini menyimpan file ke folder baru yang disebut "upload" 
 

 







Related Post