Jounin Gakure

Jounin Gakure

| Contact :

Membatasi download file dengan PHP

Diposting pada: 01 July 2015, oleh : Lupae Nema, Kategori: Programing

Ketika berkunjung ke website - website media sharing file seperti mediafire , 4share ,indowebster , dan lain - lain nya . Sepintas kepikiran , bagaimana cara membatasi download file seperti itu . Jadi suatu file yang diupload tidak bisa begitu saja didownload oleh orang . Setelah bertanya kepada google , ada beberapa trik yang bisa dilakukan oleh administrator untuk membatasi download file ini dengan Php ( Server Side Scripting ) . Pada kesempatan ini pembatasan download file dengan cara melakukan check apakah pengunjung yang akan men  download file memang berhak untuk download file yang dimaksud atau tidak dengan menggunakan SESSION .

​Di contoh ini menggunakan XAMPP , Php 5.2 , Apache .
Misal nya administrator ingin membatasi download suatu file hanya user yang sudah di konfirmasi dapat download file tersebut . Yang dimaksud konfirmasi disini bisa dengan cara melakukan pemeriksaan apakah pengunjung telah login atau berstatus anonymous ( tidak diketahui ) , jika user telah melakukan login DAN telah dikonfirmasi account nya maka  dia dapat men - download file tersebut , jika user belum login maka tidak dapat download file .

​Langsung saja praktek nya , di hosting misal nya path file hostingan nya di folder public_html , buat sebuah folder "file" , karena di contoh ini menggunakan Apache jadi untuk pembatasan akses suatu file menggunakan .htacces . Didalam folde FILE ini , buat file .htaccess dan isi dengan baris ini.

Deny from all

Dan untuk sekedar contoh untuk download file , isi folder tersebut misal nya dengan gambar "file terlarang.jpg".Jadi didalam folder FILE ini akan keliatan seperti berikut

Limit download File

Selanjutnya , membuat file yang akan digunakan untuk akses atau download file ini , misalnya file nya download.php .

  1. <?php
  2. if($_SESSION[’dahlogin’] == true && $_SESSION[’status’]== ’activated’){
  3. //dapatin nama file disimpan di db dari id
  4. $dir= ’file/’;
  5. $filename = ($_GET[’id’] == ’1’) ? ’file terlarang.jpg’ : ’not found no file no download’; //misal id 1 = file terlarang.jpg
  6.  
  7. if( file_exists($dir.$filename) ){
  8. header("Content-Type: application/octet-stream");
  9. header("Pragma: private");
  10. header("Expires: 0");
  11. header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  12. header("Cache-Control: private",false);
  13. header("Content-Disposition: attachment; filename=\"".basename($filename)."\";" );
  14. header("Content-Transfer-Encoding: binary");
  15. header("Content-Length: ".filesize($dir.$filename));
  16. readfile("$dir$filename");
  17. }
  18. else{
  19. die("<pre> File not Found");
  20. }
  21. }
  22. else { die("<pre> Tidak dapat download file !!! "); }
  23.  
  24. exit();

Untuk download file dengan contoh diatas seperti berikut ​​http://localhost/belajar/download.php?id=1

limit download

Seperti yang terlihat , file tidak bisa di download karena belum login . misalkan dibuat file lain untuk membuat SESSION kalau user sudah login misal dengan membuat file index dan dibuat seperti berikut

  1. <?php
  2.  
  3. $_SESSION[’dahlogin’]=true;
  4. $_SESSION[’status’]=’activated’;
  5. echo "Sudah login";
  6.  

Setelah membuka file index.php ( membuat session login) .
Ketika membuka file download file lagi seperti sebelum nya , respon yg akan kita dapat kan seperti berikut :

limit download file

Yep , sekian , ini semua hanya sekedar contoh sederhana , silahkan dikembangkan untuk pembatasan download file yang lebih baik.
Save coding guys

Print BeritaPrint PDFPDF