+ Cevap Yaz
9 sonuçtan 1 ile 9 arası gösteriliyor

Konu: Header Download ve İndirme yöneticisi ile parçalama...

  1. #1
    Üye
    Üyelik Tarihi
    12/2007
    Mesaj
    67

    Header Download ve İndirme yöneticisi ile parçalama...

    Php sayfasından header ile download yapınca indirme yöneticileri neden 1 parça halinda indirir.Bunun çözümü var mı?10 parçaya ayırarak indirilebilse harika olur.

  2. #2
    İptal Durumu
    Üyelik Tarihi
    12/2007
    Yer
    PHP.Net
    Mesaj
    771

    eger makina dili ile alakalı deilse..
    çünkü header direct yonlendirir...
    başka şeilkde direct downloada tıkladıın zaman program kendini hazırlar ve belleğe alır bu sayede parçalara böler...
    ama header ile gittii zaman demek burda programa "Sürpriz" Dercesine karşısına bi download cıkarıyoruz... ve programda doğal olarak boynunu büküp suratını asıyor ve hesabını kitabını yapmadan indirior

    not : acaba kuruyu kekeden almasam mı artık.. cünkü carpmaya başlıyor geceleri...?

  3. #3
    _ - _ - _ bronze Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    10/2002
    Mesaj
    364

    PHP Kodu:
     header('Content-Length: '.filesize($dosya)); 
    Dosya boyutunu da header ile göndermeyi denediniz mi?

  4. #4
    Üye
    Üyelik Tarihi
    12/2007
    Mesaj
    67

    Evet dosya boyutu ile de denedim.Parçalamak için sorgu gönderiyor ama olumsuz yanıt geliyor ki olmuyor ve devam edebilmeye "hayır" yazıyor.İnternet download manager ile aldım bu sonucu.

    Galiba mümkün değil.

  5. #5
    _ - _ - _ bronze Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    10/2002
    Mesaj
    364

    manual'in fread kısmında gördüğüm bir örnek ile yapılabildiğini test ettim:

    PHP Kodu:
    <?  
    //kullanım şekli: dosya.php?klasor=deneme&dosya=1.pdf  
       
    $dosya=$_GET['dosya'];  
       
    $dosya=str_replace("/","",$dosya);  
       
    $klasor=$_GET['klasor'];  
       
    $klasor=str_replace("/","",$klasor); 
       
    $klasor=str_replace(".","",$klasor); 
    if(empty(
    $klasor)){$indir=$dosya;} 
    else{
    $indir="".$klasor."/".$dosya."";} 
       
    $path=pathinfo($indir);  
        if (!
    is_file($indir)) { die("<b>Dosya bulunamadı</b>"); }  
       switch (
    $path['extension']){  
         case 
    "pdf"$ctype="application/pdf"; break;  
         case 
    "exe"$ctype="application/octet-stream"; break;  
         case 
    "zip"$ctype="application/zip"; break;  
         case 
    "doc"$ctype="application/msword"; break;  
         case 
    "xls"$ctype="application/vnd.ms-excel"; break;  
         case 
    "ppt"$ctype="application/vnd.ms-powerpoint"; break;  
         case 
    "gif"$ctype="image/gif"; break;  
         case 
    "png"$ctype="image/png"; break;  
         case 
    "jpeg":  
         case 
    "jpg"$ctype="image/jpg"; break;  
         case 
    "mp3"$ctype="audio/mpeg"; break;  
         case 
    "wav"$ctype="audio/x-wav"; break;  
         case 
    "mpeg":  
         case 
    "mpg":  
         case 
    "mpe"$ctype="video/mpeg"; break;  
         case 
    "mov"$ctype="video/quicktime"; break;  
         case 
    "avi"$ctype="video/x-msvideo"; break;  
         case 
    "php":  
         case 
    "htm":  
         case 
    "html":  
         case 
    "txt": die("<b>Bu dosyayı indiremezsiniz!</b>"); break;  
       }  
        
    header("Cache-Control:");
        
    header("Cache-Control: public");
        
    header("Content-Type: $ctype");  
        
    header("Accept-Ranges: bytes");
        
        
    $boyut=filesize($dosya);
        
    //check if http_range is sent by browser (or download manager)
        
    if(isset($_SERVER['HTTP_RANGE'])) {
            list(
    $a$range)=explode("=",$_SERVER['HTTP_RANGE']);
            
    //if yes, download missing part
            
    str_replace($range"-"$range);
            
    $boyut2=$boyut-1;
            
    $yeni_boyut=$boyut2-$range;
            
    header("HTTP/1.1 206 Partial Content");
            
    header("Content-Length: $yeni_boyut");
            
    header("Content-Range: bytes $range$boyut2/$boyut");
        } else {
            
    $size2=$size-1;
            
    header("Content-Range: bytes 0-$boyut2/$boyut");
            
    header("Content-Length: ".$boyut);
        }
        
    //open the file
        
    $fp=fopen("$dosya","rb");
        
    //seek to start of missing part
        
    fseek($fp,$range);
        
    //start buffered download
        
    while(!feof($fp)){
            
    //reset time limit for big files
            
    set_time_limit(0);
            print(
    fread($fp,1024*8));
            
    flush();
            
    ob_flush();
        }
        
    fclose($fp);
    ?>

  6. #6
    Üye
    Üyelik Tarihi
    12/2007
    Mesaj
    67

    yine tek parça bende.sizde oldu mu?

  7. #7
    _ - _ - _ bronze Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    10/2002
    Mesaj
    364

    Flashget ile deniyorum, hem parçalı şekilde iniyor hem de devam edebilme özelliğine sahip oluyor. Dosya adı ve tamamlanması ile ilgili bir problem gördüm. En son denediğim dosya hali:
    PHP Kodu:
    <?  
    //kullanım şekli: dosya.php?klasor=deneme&dosya=1.pdf  
       
    $dosya=$_GET['dosya'];  
       
    $dosya=str_replace("/","",$dosya);  
       
    $klasor=$_GET['klasor'];  
       
    $klasor=str_replace("/","",$klasor); 
       
    $klasor=str_replace(".","",$klasor); 
    if(empty(
    $klasor)){$indir=$dosya;} 
    else{
    $indir="".$klasor."/".$dosya."";} 
       
    $path=pathinfo($indir);  
        if (!
    is_file($indir)) { die("<b>Dosya bulunamadı</b>"); }  
       switch (
    $path['extension']){  
         case 
    "pdf"$ctype="application/pdf"; break;  
         case 
    "exe"$ctype="application/octet-stream"; break;  
         case 
    "zip"$ctype="application/zip"; break;  
         case 
    "doc"$ctype="application/msword"; break;  
         case 
    "xls"$ctype="application/vnd.ms-excel"; break;  
         case 
    "ppt"$ctype="application/vnd.ms-powerpoint"; break;  
         case 
    "gif"$ctype="image/gif"; break;  
         case 
    "png"$ctype="image/png"; break;  
         case 
    "jpeg":  
         case 
    "jpg"$ctype="image/jpg"; break;  
         case 
    "mp3"$ctype="audio/mpeg"; break;  
         case 
    "wav"$ctype="audio/x-wav"; break;  
         case 
    "mpeg":  
         case 
    "mpg":  
         case 
    "mpe"$ctype="video/mpeg"; break;  
         case 
    "mov"$ctype="video/quicktime"; break;  
         case 
    "avi"$ctype="video/x-msvideo"; break;  
         case 
    "php":  
         case 
    "htm":  
         case 
    "html":  
         case 
    "txt": die("<b>Bu dosyayı indiremezsiniz!</b>"); break;  
       }  
        
    header("Cache-Control:");
        
    header("Cache-Control: public");
        
    header("Content-Type: $ctype");  
        
    header("Accept-Ranges: bytes");
        
        
    $boyut=filesize($dosya);
        
    //check if http_range is sent by browser (or download manager)
        
    if(isset($_SERVER['HTTP_RANGE'])) {
            list(
    $a$range)=explode("=",$_SERVER['HTTP_RANGE']);
            
    //if yes, download missing part
            
    str_replace($range"-"$range);
            
    $boyut2=$boyut;
            
    $yeni_boyut=$boyut2-$range;
            
    header("HTTP/1.1 206 Partial Content");
            
    header("Content-Length: $yeni_boyut"); 
               
    header("Content-Disposition: attachment; filename=".$dosya.";"); 
            
    header("Content-Range: bytes $range$boyut2/$boyut");
        } else {
            
    $size2=$size
               
    header("Content-Disposition: attachment; filename=".$dosya.";"); 
            
    header("Content-Range: bytes 0-$boyut2/$boyut");
            
    header("Content-Length: ".$boyut);
        }
        
    //open the file
        
    $fp=fopen("$dosya","rb");
        
    //seek to start of missing part
        
    fseek($fp,$range);
        
    //start buffered download
        
    while(!feof($fp)){
            
    //reset time limit for big files
            
    set_time_limit(0);
            print(
    fread($fp,1024*8));
            
    flush();
            
    ob_flush();
        }
        
    fclose($fp);
    ?>

  8. #8
    Üye
    Üyelik Tarihi
    12/2007
    Mesaj
    67

    Son yolladığınız sorunsuz şekilde oldu.Çok teşekkür ederim.

    Peki başka siteden linki bu şekilde kullanabilir miyiz?

  9. #9
    Üye
    Üyelik Tarihi
    09/2005
    Mesaj
    333

    @bronze, nasıl deniyorsun? merak ettim.
    Alıntı bronze, mesajından alıntı: Mesajı Gör
    Flashget ile deniyorum

+ Cevap Yaz

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

     

Benzer Konular

  1. TDK Bilim ve Sanat Terimleri Sözlüğü'nü İndirme
    By KaravanaBatu in forum Uygulama Yazılımları / Hazır Betikler
    Cevap: 1
    En Son Mesaj: 17/09/2009, 22:34
  2. Cevap: 3
    En Son Mesaj: 23/08/2006, 22:33
  3. avi parçalama
    By Ateşbalığı in forum Kültür ve Sanat
    Cevap: 1
    En Son Mesaj: 19/04/2004, 10:13
  4. php download yöneticisi
    By alien in forum PHP
    Cevap: 2
    En Son Mesaj: 18/03/2003, 01:04

Bookmarks

Mesaj Yazma Hakları

  • Yeni mesajgöndermezsiniz
  • Cevap yazamazsınız
  • Dosya ekleyemezsiniz
  • Mesajınızı düzenleyemezsiniz