Upload File dengan PHP

Upload File dengan PHP

Upload File dengan PHP

Upload File dengan PHP
Upload File dengan PHP

PHP dapat digunakan meng-upload file ke server.

Buat Form Upload-File

Untuk memberikan kesempatan user dapat  meng- upload files dari suatu form dapat sangat bermanfaat

/Perhatikan form HTML berikit  :

<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>

Catatan berikut tentang form HTML di atas:

  • enctype attribute dari  tag <form>  spesifikasi bagaimana  type komponen yang digunakan  bila  mengirimkan form. “multipart/form-data”  digunakan bila form memerlukan data binary, seperti komponen file, yang akan di upload
  • type=”file” attribute dari tag <input>  spesifikasi dimana  input akan diproses sebagai sebuah file. Contoh, bila ditampilkan di browser, akan ada suatu browse-button di sebelah kanan  field input

Note: Memberikan  izin kepada sembarang user untuk meng- upload file mempunyai resiko yang besar. Hanya mengijinkan para pemakai dipercayai untuk melaksanakan file uploads.

Buat Script Upload

file “upload_file.php” berisi code untuk 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 global PHP $_FILES array anda dapat  upload files dari client computer ke remote server.

Parameter pertama dari form masukan nama dan yang kedua index dapat juga “nama”, “type”, “size”, “tmp_name” atau “error”. seperti berikut:

  • $_FILES[“file”][“name”] – nama file yang di upload
  • $_FILES[“file”][“type”] – type file yang di upload
  • $_FILES[“file”][“size”] – ukuran dalam bytes file yang di upload
  • $_FILES[“file”][“tmp_name”] – nama copy file sementara  dari file yang akan disimpan diserver
  • $_FILES[“file”][“error”] – kode error yang dihasikan dari file upload

Ini cara sangat sederhana untuk  meng upload files. Untuk menjamin keamanan , anda harus tambahkan pembatasan  apa dan siap yang diizinkan untuk meng- upload.

Pembatasan pada Upload

Pada script ini kita menambahlan beberapa pembatasan ke file upload. User hanya boleh 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";   }
?>

Note: untuk IE untuk recognize file jpg , type harus  pjpeg, untuk FireFox harus  jpeg.

Menyimpan File Upload

Contoh diatas membuat salinan sebuah file sementara  dari file yang di upload. pada PHP folder temp berada pada server.

copy file sementara  akan dihapus ketika script berakhir. Untuk menyimpan file yang di upload kita harus mengcopynya persis sama 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 memeriksa apakan file sudak ada, Jika tidak, akan menyalin file ke folder yang ditentukan.

Sumber : https://usgsprojects.org/