• 27-02-2009, 02:51:28
    #1
    Üyeliği durduruldu
    Arkadaslar sitemden dosyaları asagıdaki kod ile ziyatercilere download ettiriyorum. Baglantısı cok hızlı olan ziyaretciler hemen download ediyorlar. Sorum ise su; Php ile bu download hızını nasıl yavaslatabilirim? ornegin
    2kb 5Kb 10Kb gibi. Yardımlarınızı Bekliyorum.
       $file="file/".$_GET['dosya'];
        header('Content-type: application/pdf');
        header("Content-Disposition: attachment; filename=dosya.dbf");
        readfile($file);
  • 27-02-2009, 04:43:31
    #2
    Üyeliği durduruldu
    böyle birşey php ile yapılamaz. bunun yanında mysql ve apache ile de yapılamaz. bunun için server da firewall benzeri bir yazılım olması gerek sanırım.
  • 27-02-2009, 06:03:20
    #3
    Üyeliği durduruldu
    Download Hızını NEden Düşürmek İstiyorsun Aksine Yükselttirmek İstemen Gerekirken.

    Bide Bahane Olarak Baglantısı cok hızlı olan ziyaretciler hemen download ediyorlar
    Diyorsun.

    Yani NEden Çıkıpta arkadaşlar,
    Ben Üye Olanlara Normal Hızda Ziyaretçilere ise Üye Olmalarına Teşvik İçin Ayrıca Bi Yavaş Çalışan Download Sistemi Yaptırmak İstiyorum demiyorsun Onu anlamadım.

    Ha eğer Yine Gerçekten BEnim Bahsettiğim Şekilde Yapcaksan.
    Ziyaretçilere Normal Download Ver Üyelere İse CURL İle Download Ettir.

    Kolay Gelsin.
  • 27-02-2009, 06:27:05
    #4
    MC_delta_T adlı üyeden alıntı: mesajı görüntüle
    böyle birşey php ile yapılamaz. bunun yanında mysql ve apache ile de yapılamaz. bunun için server da firewall benzeri bir yazılım olması gerek sanırım.
    çok da iddialı konuşmayalım bence.

    Download Sentinel++

    adam yapmış.
  • 27-02-2009, 10:13:23
    #5
    Üyeliği durduruldu
    MC_delta_T adlı üyeden alıntı: mesajı görüntüle
    böyle birşey php ile yapılamaz. bunun yanında mysql ve apache ile de yapılamaz. bunun için server da firewall benzeri bir yazılım olması gerek sanırım.
    download edilen dosyalar php dosyasi üzerinde geçiriliyorsa en basitinden kısa kısa pause ile veri oku dur veri oku dur mantigi ile limitleme yapilabilinir.

    ama dosya direk indiriliyorsa bunun için apache ye modül kurmaniz gerekir. bantwidth limiter gibi

    readfile ile degilde fopen ve fget ile okumaniz lazim

    PHP: fopen - Manual
    PHP: sleep - Manual
    PHP: fgetc - Manual

    bence apache modül ile yapmak daha saglikli
  • 27-02-2009, 10:17:17
    #6
    MC_delta_T adlı üyeden alıntı: mesajı görüntüle
    böyle birşey php ile yapılamaz. bunun yanında mysql ve apache ile de yapılamaz. bunun için server da firewall benzeri bir yazılım olması gerek sanırım.
    Kesin emin olmadan insanları yanlış yönlendiriyorsunuz. Bunu yapmayın php ile öyle güzel yapılır ki canlı örneği aşağıdadir.

    Dogu_Bey adlı üyeden alıntı: mesajı görüntüle
    Download Hızını NEden Düşürmek İstiyorsun Aksine Yükselttirmek İstemen Gerekirken.
    Bide Bahane Olarak Baglantısı cok hızlı olan ziyaretciler hemen download ediyorlar
    Diyorsun.
    Yani NEden Çıkıpta arkadaşlar,
    Ben Üye Olanlara Normal Hızda Ziyaretçilere ise Üye Olmalarına Teşvik İçin Ayrıca Bi Yavaş Çalışan Download Sistemi Yaptırmak İstiyorum demiyorsun Onu anlamadım.
    Ha eğer Yine Gerçekten BEnim Bahsettiğim Şekilde Yapcaksan.
    Ziyaretçilere Normal Download Ver Üyelere İse CURL İle Download Ettir.
    Kolay Gelsin.
    Arkadaş anlık trafik derdinden kurtulmak istiyordur belki. Amacını bilmeden bu kadar sert çıkışmayın bence.

    sikripci adlı üyeden alıntı: mesajı görüntüle
    Arkadaslar sitemden dosyaları asagıdaki kod ile ziyatercilere download ettiriyorum. Baglantısı cok hızlı olan ziyaretciler hemen download ediyorlar. Sorum ise su; Php ile bu download hızını nasıl yavaslatabilirim? ornegin
    2kb 5Kb 10Kb gibi. Yardımlarınızı Bekliyorum.
       $file="file/".$_GET['dosya'];
        header('Content-type: application/pdf');
        header("Content-Disposition: attachment; filename=dosya.dbf");
        readfile($file);
    Arkadaşım alttaki kodlar ile bunu başarabilirsin. Şahsen denedim ve çalışıyor.

    <?php
    $dosya = "dosya.zip"; // Dosya adı
    $hiz = 50; // Burda hız sınırı koymak istediğin Kbps değer. Ben 50 KB/sn verdim.
    if(file_exists($dosya) && is_file($dosya)) {
       header("Cache-control: private");
       header("Content-Type: application/octet-stream");
       header("Content-Length: ".filesize($dosya));
       header("Content-Disposition: filename=$dosya" . "%20");
       flush();
       $fd = fopen($dosya, "r");
       while(!feof($fd)) {
          echo fread($fd, round($hiz*1024)); // $hiz değişkenine bağlı olarak indirmeyi ayarlıyoruz
          flush();
          sleep(1);
       }
       fclose ($fd);
    }
    ?>
  • 27-02-2009, 10:40:03
    #7
    Üyeliği durduruldu
    zampir adlı üyeden alıntı: mesajı görüntüle
    Arkadaşım alttaki kodlar ile bunu başarabilirsin. Şahsen denedim ve çalışıyor.
    doğru yaklaşım
  • 27-02-2009, 14:16:48
    #8
    Üyeliği durduruldu
    Arkadaslar ilginiz cok tessekkurler. Zampir verdigin kod gercekten cok makmula gecti. Kod istedigimiz hizda indirmeyi destekliyor.
    Ama buyuk dosyalarda kod dosyanın tamamını indirmiyor. Hiz degiskenine verdigimiz deger ile orantılı olarak indirme yapıyor. Kodu epey kurcaladım duzeltemedim. Yanlıslık nerde olabilir acaba.
  • 27-02-2009, 14:35:49
    #9
    Üyeliği durduruldu
    sikripci adlı üyeden alıntı: mesajı görüntüle
    Arkadaslar ilginiz cok tessekkurler. Zampir verdigin kod gercekten cok makmula gecti. Kod istedigimiz hizda indirmeyi destekliyor.
    Ama buyuk dosyalarda kod dosyanın tamamını indirmiyor. Hiz degiskenine verdigimiz deger ile orantılı olarak indirme yapıyor. Kodu epey kurcaladım duzeltemedim. Yanlıslık nerde olabilir acaba.
    problem php kodunuz timeout oluyordur.

    kodun başına
    set_time_limit(0);
    eklerseniz sorun çözülür