Forum Zero

Web Master Yardım Konuları (No Warez - No Crack) => Programlama => Php => Konuyu başlatan: AStaLD - 06 Mart 2011, 14:16:23

Başlık: PHP ile Dosya İndirme
Gönderen: AStaLD - 06 Mart 2011, 14:16:23
Mrb Arkadaşlar Geçenlerde nette Bulduğum paylaşımı Birazda geliştirirerek örnek haline getirip paylaşmak istedim kodlar sağlam denedim ama sadece .rar .zip. tar.gt vs. gibi dosyaları indirebiliyorsunuz dosyalarınızı JET hızda indiriyor şaşırdım :D ben dosyanın tam dizini yazıp indir tıklayın bir kaç saniye sonra bakın test/ klasörün içinde :d şaşırmayın bu php'nin güzel yanlarından biri neyse fazla uzatmadan sizlere kodları paylaşayım
bu sınıfmız

<?php
/* Php File Download v2.0
 * Yusuf KOÇ ( Raiden )
 * http://www.ysfkc.com
 *
 * Copyright 2008 Ysfkc.Com
 * Licensed under the GNU General Public License, version 2.
 * See the file http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
 */

class fileDownload
{
    private $fileUrl;
    private $file;
    private $dir;
    private $curl;
    private $content;
    private $fileName;
    private $fileExtension;
    private $getMsg = array();
    
    public function setUrlAddress($url)
    {
        $this->fileUrl = $url;
    }
    
    public function setDirectory($name)
    {
        if (!is_writable($name) || !is_readable($name))
        {
            $this->getMsg[] = 'Belirtmiş Olduğunuz Dizin Yazılabilir Değil';
            $this->getMsg[] = 'Belirtmiş Olduğunuz Dizin Okunabilir Değil';
        }
        else
        {
            $this->dir = $name;
        }
    }
    
    public function setFileName($name)
    {
        if (is_bool($name) && $name === false)
        {
            $this->fileName = preg_replace("/^(http:\/\/.*\/)?/i",'',$this->fileUrl);
        }
        else if (is_bool($name) && $name === true)
        {
            $this->fileName = md5(sha1(uniqid(mt_rand().microtime()))).'.'.$this->getFileExtension();
        }
        else
        {
            $this->fileName = $name.'.'.$this->getFileExtension();
        }
    }
    
    private function getFileExtension()
    {
        return preg_replace('/^(http:\/\/.*\.)?/i','',$this->fileUrl);
    }

    private function getData()
    {
        $this->curl = curl_init();
        curl_setopt($this->curl,CURLOPT_URL, $this->fileUrl);
        curl_setopt($this->curl,CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);
        curl_setopt($this->curl,CURLOPT_RETURNTRANSFER,1);
        $this->content = curl_exec($this->curl);
        curl_close($this->curl);
    }
    
    public function saveData()
    {
        # Callback getData()
        $this->getData();
        
        # Open new file
        $this->file = fopen($this->dir.'/'.$this->fileName,'w');
        
        if (fwrite($this->file,$this->content))
        {
            $this->getMsg[] = 'Dosya Kaydedildi.';
            $this->getMsg[] = 'Dosya Yolu: <i>'.$this->dir.'/'.$this->fileName.'</i>';
            return true;
        }
        else
        {
            $this->getMsg[] = 'Dosya Download Edilemedi';
            return false;
        }
    }
    
    public function getMessage()
    {
        echo '<ul>';
        foreach ($this->getMsg AS $value)
        {
            echo "\t<li>".$value."</li>\n";
        }
        echo '</ul>';
    }
}
?>


<?php
/* Php File Download v2.0
 * Forumzero.org
 * http://www.forumzero.org
 */

# Sınıfımızı Dahil Ediyoruz.
# -------------------------------
include_once('ysfkc.file.php');
$url    = $_POST['url'];
$yeniad  = $_POST['yeniad'];
if($_POST){
# Sınıfımızı Başlatıyoruz.
# -----------------------------
$file = new fileDownload;

# Download Etmek İstediğimiz Dosyayının URL Adresini Giriyoruz.
# -------------------------------------------------------------------
$file->setUrlAddress("$url");

# Download Edilecek Dizini Belirtiyoruz.
# ----------------------------------------
$file->setDirectory('test');

# Dosyaya Random İsim Verdiyoruz True Parametresini Girerek.
# False Direk ajax.tar.gz olarak alacaktır.
$file->setFileName("$yeniad"); //ile kendiniz de isim verebilirsiniz.
$file->setFileName(true);

# Son Olarak Dosya Kaydetme İşlemini Başlatıyoruz.
# ----------------------------------------------------------------
if ($file->saveData())
{
    # Download İşlemi Başarılı Oldu İse Bildirim Mesajını Alıyoruz.
    # ----------------------------------------------------------------
    $file->getMessage();
}
else
{
    # Download İşlemi Başarılı Olmadıysa Hata Bildirimini Yapıyoruz
    # ----------------------------------------------------------------
    $file->getMessage();
}
}
?>
<form method="post" action="">
<table>
<tr>
     <td>Site URL Uzantısı</td>
<td><input type="text" name="url" size="55px"/></td>
</tr>
<tr>
     <td>YeniAd</td>
<td><input type="text" name="yeniad" size="55px"/></td>
</tr>
<tr>
     <td></td>
<td><input type="submit" value="İndir"/></td>
</tr>
</table>
</form>


Veya İsterseniz Orjinal Kodları ile beraber Message to show when link is hided İndirebilirsiniz
Kodlar Alıntıdır.
Başlık: Ynt: PHP ile Dosya İndirme
Gönderen: AStaLD - 06 Mart 2011, 14:17:49
verdiğim kodlar çalışmaktador bizzat kendim denedim ve kullanıyorum  #desteklemek2#