PHP ile Dosya Çekme

Evren Bayraktar Tarih: 15 Mayıs, 2009 Saat: 3:22 Php (0) Yorum

Turk-php de konusu geçince bu yazıyı hazırlamaya karar verdim. Örneğin bir sitedeki dosyanın linkini kendi sitemizde vermek istiyoruz ama adamlar dışarıdan erişimi yasaklamış. Öyle ise böyle diyerek bizde onlara böyle bir kod yardımı ile cevap vermiş oluruz :)

Tabiki her durum için işimizi görmeyebilir fakat onlar işin kolayına kaçıp minik bir htaccess dosyası oluşturmuşlardır ve başka sitelerden tıklanan linkleri engelliyorlardır. Bizde kodumuz yardımıyla sanki onların sitesindeymişiz gibi şaka yapıp, dosyamızı indirmenin keyfini süreriz. Lafı fazla uzatmadan kod kısmına gelelim,

<?php
 
/**
 * @author EvrenWeb
 * @copyright 2009
 */
 
function dosya_indir($link,$name=null) {
 
$link_info = pathinfo($link);
$uzanti = strtolower($link_info['extension']);
$file = ($name) ? $name.'.'.$uzanti : $link_info['basename']; 
 
$curl = curl_init($link);
$fopen = fopen($file,'w');
 
curl_setopt($curl, CURLOPT_HEADER,0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl, CURLOPT_REFERER, "http://www.evrenweb.net/");
# Yukarıda dosyayı başka siteden çektirmeye izin vermeyebilir
# Bu yüzden kimliğimizi gizleyip, kendi sitesindeymişiz gibi izlenim
# Yaratıyoruz. Hangi siteden çekiceksek o sitenin adresini yazaviliriz.
curl_setopt($curl, CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_0);
curl_setopt($curl, CURLOPT_FILE, $fopen);
curl_exec($curl);
curl_close($curl);
 
fclose($fopen);
header('Content-Description: File Transfer');
header('Content-Type: application/download');
header("Content-Disposition: attachment; filename="".basename($file)."";");
header('Content-Length: ' . filesize($file));
@readfile($file) OR die();
 
}
 
# dosya_indir($_POST['cek']);
 
dosya_indir($_GET['cek']);
 
# dosya_indir($_GET['cek'], "yeni_ad") şeklinde dosya ismini değiştirebiliriz
 
?>

Yukarıdaki kodumuzu dosya.php olarak kayıt edelim. Şimdi çekme işlemini nasıl yapacağımıza geldi sıra. Çook basit ! http://www.siteniz.com/dosya.php?cek=CEKİLECEK-DOSYANIN-ADRESİ şeklinde linkizimizi tarayıcımıza yazıcaz ve olup biticek :) Ben örnek olarak burada form kullanıcam, isterseniz sizde $_GET yerine $_POST yazıp hazırladığınız form ile dosyayı çektirebilirsiniz. Form örneğide burada,

 
<form action="http://evrenweb.net/ornek/php/php-ile-dosya-cekme/dosya.php" enctype="application/x-www-form-urlencoded" method="post">
<input name="cek" size="25" style="border: 1px solid rgb(102, 102, 102);" value="http://www.egonomik.com/script/zip/resimyaz.zip" type="text">
<input value="İndir !" type="submit">
</form>
 

Bir önceki yazımda konusu geçen kodun hazır halini Egonomik'in sitesinden çekelim :)

Kodun Çalışan Hali:

Buraya tıklayarakda gerekli dosyaları çekebilirsiniz.


Paylaş:
  • Facebook
  • Google Bookmarks
  • Digg
  • del.icio.us
  • MySpace
  • Technorati
  • LinkedIn
  • FriendFeed
  • Mixx
  • Print

Benzer Yazılar:

  1. Php ile Dizin Listeletme
  2. PHP İle Resim Üzerine Yazı Yazma Scripti
  3. Php ve Flash ile Geri Sayım İşlemi
  4. Turk-Php.Com Yenilikler ile geliyor
  5. PHP ile Rastgele Söz
Etiket : , , ,

Yorumlar

Henüz yorum yapılmamış.


Yorum yapın

(gerekli)

(gerekli)






EvrenCe Facebook'da.