1.0/5 Görüntülenme: 16426

Php Download Kodu


Php ile tıklanan pdf, mp3, png, jpg, html gibi herhangibir uzantıyı tarayıcıda açmak yerine Bilgisayara Kaydet butonunun gelmesi için header kodu oluşturarak işlem yaptırıyoruz.

 

html sayfa:
<A href="examples/indir.php?file=download.php">php dosya indirmek için tıkla</A>

 

download.php sayfamız

// Php download kodu

$file=$_GET["file"];

header("Content-Disposition: attachment; filename=$file");

readfile("$file");

 

// Önemli Not: Bukadar basit şekilde download.php dosyası hazırlamayın sisteminizde açık oluşturmuş olursunuz. download.php?file=../db.php şeklinde kötü niyetli deneme ile database bağlantı veya herhangibir dosyaya erişilebilir, yani sunucunuza genel erişim vermiş olursunuz. Shash (/) vb. Hotlink yazımları engelleyerek açık önlenebilir. Aşağıda verdiğim örnek gibi.

 

Php Download Scripti

$item=urlencode($_GET["file"]); // a-z 0-9 hariç karakterli url kodlamasına çevir.
$item=str_replace("%2F","",$item); // Normal Slash'ı kaldır (/)
$item=str_replace("%5C","",$item); // Ters Slash'ı kaldır (\)
if(is_file($item)){ // Dosya sunucuda mevcut mu bak.
 header("Content-Disposition: attachment; filename=$item"); // kaydet butonunu getir. 

 readfile($item); // dosya içeriğini oku

}else{
 echo urldecode($item)." Dosya Bulunamadi !"; // urlyi tekrar çöz.
}

Php Download Scripti 2

$file=basename($_GET["file"]); // basename sayesinde klasör linkleri görmez sadece dosya ismini alır.

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.$file);
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    ob_clean();
    flush();
    readfile($file);
    exit;
}else{
 echo $file." Dosya Bulunamadi !";
}

 

Php ile sadece dosya ismini almak

basename fonksiyonu ile yazılımlarınızda uzun linkler ne olursa olsun sadece dosya ismi ve uzantısını almannızı sağlayacak fonksiyon. Birnevi php geri url engelleme yöntemide diyebiliriz.

php basename kullanımı

<?php
$yol 
"/home/httpd/html/index.php";
$dosya basename($yol);         // $dosya => "index.php"
$dosya basename($yol".php"); // $dosya => "index"
?>
 

Php Download link script şeklinde Kodlar genişletilerek kaç KB/S hızında indirmesini istediğimizi de ayarlayabiliriz. Uzantı farketmiyor .html dosyayı bile kaydet butonu gelmesini sağlıyor. Kodlar arasına bir klasör ismi tanımlayarak sadece o klasörün içerisindeki dosyaların indirilmesini sağlatabilirsiniz.

EXE Dosyalara Download linki yapmak

Exe dosyaları sunucumuz kabul etmiyorsa uzantısını silerek download.php?file=dosya şeklinde link yaptığımızda yine o dosyanın indirilmesi sağlanacaktır.

 

Tag: Php ile download link yapımı, Php download kod, Php Add link Download Code, Php Download link kodu, Php Kaydet butonu gelmesi, php indir kodu, php header ile download link yapmak


Konu (108) ile ilgili admin @ limitsizbilgi.com adresine E-mail gönderebilirsiniz. İsa Şahintürk