• 12-04-2009, 18:39:14
    #1
    sa arkadaşlar resim yükleme sitem için sitelerden resim çekme özelliği eklicektim ama bir türlü yapamadım resimleri çekerken kullandığım fonksiyon bu;
    function dosya_indir($adres,$ad)
    {
        if (!extension_loaded(curl)) {
            die("Extension yuklu  degil socket deneyebilirsin");
        }
        $ch = curl_init("$adres");
        if (!$ch) {
            die("Curl oturumu baslatamadim..");
        }
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $data = curl_exec($ch);
        curl_close($ch);
        // baglantiyi kapa
    
        $islem = fopen("$ad", "a+");
        fwrite($islem, $data);
        fclose($islem);
        if ($islem) {
            echo" Dosya basariyla yuklendi...";
        } else {
            die("Dosya yuklenemedi");
        }
    }
    bunu kaydetmeden nasıl süzgeçten geçirebiLirim?
    meseLa Buradaki Upload CLass'ı
    kuLLanarak?
  • 12-04-2009, 18:53:04
    #2
    Üyeliği durduruldu
    YuqseLX adlı üyeden alıntı: mesajı görüntüle
    bunu kaydetmeden nasıl süzgeçten geçirebiLirim?
    konuyu biraz daha açar mısınız, süzgeçten geçirme nedir? tama olarak ne yapamk istiyorsunuz?
  • 12-04-2009, 18:54:53
    #3
    Linkte verdiğim cLass upLoad işLemini gerçekLeştiriyor onu kuLLanabiLir miyim yani? yeni isim yazıyor dosyanın mime type kontroLünü yapıyor fakat bu fonksiyonda direk kaydediyor
  • 12-04-2009, 19:02:32
    #4
    Üyeliği durduruldu
    YuqseLX adlı üyeden alıntı: mesajı görüntüle
    Linkte verdiğim cLass upLoad işLemini gerçekLeştiriyor onu kuLLanabiLir miyim yani? yeni isim yazıyor dosyanın mime type kontroLünü yapıyor fakat bu fonksiyonda direk kaydediyor
    Bu kontrolleri kendin yapmalısın. sonrada kontrollerin doğru ise o zaman download class ını cagirmalisin
  • 15-04-2009, 11:20:48
    #5
    tamam süLeyman abi haLLettim
            function addegis($degis){
                    function rasgele($uzunluk)
                    {
                    $karakterler = "1234567890abcdefghijklmnopqrstuvwxyz";
                    for($i=0;$i<$uzunluk;$i++)
                    {
                    $key .= $karakterler{rand(0,35)};
                    }
                    return $key;
                    }
                     $oldName    = $degis;
                     $extension  = strrchr($oldName, '.');
                        
                       $time = time();
                     $yeniad     = rasgele(10).$extension;
                     
                     $degis = $yeniad;
                     return $yeniad;
                }
            define('ALLOWED_FILENAMES', 'jpg|jpeg|gif|png|swf');
            define('IMAGE_DIR', 'images'); 
            define('URL', "http://".$_SERVER['SERVER_NAME'].'/');
            if(!preg_match('#^http://.*([^/]+\.('.ALLOWED_FILENAMES.'))$#', $_POST['resim'], $m)) {
            die('Desteklenmeyen Uzantı!');
            }
            if(!$img = file_get_contents($_POST['resim'])) {
            die('Dosya Alınamadı!');
            } 
            $yeniad = addegis($m[1]);
            if(!file_put_contents(IMAGE_DIR.'/'.$yeniad, $img)) {
            die('Dosya Kopyalanamadı!');
            }  
        $ad = $m[1];
        $link = IMAGE_DIR.'/'.$yeniad;
    böyLe birşey yaptım oLur değiL mi?
  • 15-04-2009, 11:26:22
    #6
    Üyeliği durduruldu
    YuqseLX adlı üyeden alıntı: mesajı görüntüle
    böyLe birşey yaptım oLur değiL mi?
    calistirinca bekledigin sonucu veriyorsa olmuştur
  • 15-04-2009, 11:28:22
    #7
    bişey daha sorucam
     if(!preg_match('#^http://.*([^/]+\.('.ALLOWED_FILENAMES.'))$#', $_POST['resim'], $m)) {
            die('Desteklenmeyen Uzantı!');
            }
    burda kullanıcı input'a http:// koymazsa hata veriyor bunu nasıl bişey yapabilirim?
  • 15-04-2009, 11:37:45
    #8
    Üyeliği durduruldu
    strtolower(strrchr($_POST['resim'],'.'));
    .gif gibi uzantisini verir küçük harf olarak
  • 15-04-2009, 11:43:10
    #9
    Üyeliği durduruldu
    ben bunu kullanıyorum

    <?
    $site_adres = "http://adres.com";
    error_reporting(0);
    function utime (){
    $time = explode( " ", microtime());
    $usec = (double)$time[0];
    $sec = (double)$time[1];
    return $sec + $usec;
    }
    if(!function_exists('curl_init')){
    die("cURL Extension, PHP'de Yüklü Degildir. Lütfen Yükleyin.");
    }
    $downloaddir = "./resimlerim";
    if(!is_dir($downloaddir)){
    if(!mkdir( $downloaddir )){
    die("Download Dizini Yok ve Olusturulamiyor. Lütfen Manuel Olarak Olusturun, ve CHMOD 777 Atin.");
    } else {
    chmod($downloaddir, "0777") or die("CHMOD 777 Yapilamadi. Manuel Olarak Yapiniz!");
    }
    }
    if(isset($_GET['indir'])){
    $file = $_POST['file'];
    if($file[4] != ":" || $file[5] != "/" || $file[6] != "/" ) {
    $file = "http://".$file;
    }
    if($file[0].$file[1].$file[2].$file[3] == "file"){
    die("Bu Script, Local URL'ler Ile Çalismak Üzere Ayarlanmamistir.");
    }
    $do = parse_url($file);
    $xx = $do['path'];
    $xy = pathinfo($xx);
    $locfn = $xy['basename'];
    $locpth = $downloaddir."/".$locfn;
    if(file_exists($locpth)){
    unlink($locpth) or die($locpath." Mevcut ve Dosya Overwrite Edilemiyor, Dosya Adini Degistirin yada Silin.");
    echo $locpth."Dosyasi Mevcut. Overwrite Ediliyor.<br>";
    }
    flush();
    $start = utime(); 
    $curl = curl_init($file);
    ob_start();
    curl_exec($curl);
    $contents = ob_get_contents();
    ob_end_clean();
    $handle = fopen($locpth, "a+");
    fwrite($handle, $contents);
    fclose($handle);
    $end = utime(); 
    $run = $end - $start; 
    echo"Dosyaniz, Download Basarili Oldu Ise, ".$site_adres.$locpth." Dosyasina Kayit Edildi.<br>";
    echo round(filesize($locpth), 0)."byte Dosya, " . round($run, 0) . " Saniyede Indirildi(".round(filesize($locpth)/round($run, 0), 0)."bps).<br>";
    } else {
    ?>
    <form action='<? echo $_SERVER['PHP_SELF']; ?>?indir=1' method='post'>
    Dosya URL'si Giriniz: <input type='text' name='file'><input type='submit' name='submit' value='Download'><input type='reset' value='Sifirla'>
    </form>
    <?
    
    }
    ?>