Şimdi Ara

PHP İle Download Problemi.

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
3
Cevap
0
Favori
737
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba arkadaşlar ben joomla üzerinde bir download modülü kullanıyorum ve bu download modülü kendi hostum dışında link vermeme izin vermiyor bende kodları değiştirerek download sistemini değiştirdim ama downloadı başlatma ile problem yaşıyorum.

    Kullandığım kodlar :

    1.

     
    $basefilename = basename($URL);
    header("Content-Disposition: attachment; filename=$basefilename;");
    readfile($URL);


    Bu kod çalışıyor ama problem şurada dosya boyutu büyüdükçe bekleme süresi artıyor ve sonra dosyayı hemen kaydediyor. sanırım belleğe alma gibi bir işlem gerçekleşiyor burada 100MB lik bir dosyanın bekleme süresi haliyle uçuyor. Bekleme süresi olmadan direk indirmek istiyorum.

    2.

     
    function file_download($link,$dosya_adi=NULL){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$link);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    $dosya=curl_exec($ch);
    curl_close($ch);

    if($dosya_adi==NULL){
    $dosya_adi=explode("/",$link);
    $dosya_adi=array_reverse($dosya_adi);
    $dosya_adi=$dosya_adi[0];
    }

    $fp = fopen($dosya_adi,'w');
    fwrite($fp, $dosya);
    fclose($fp);
    }

    KULLANIMI

    file_download($URL,$basefilename);


    Bundada bir süre bekledikten sonra eklenti olarak gösterilen link'e boş sayfa olarak açıyor. Örneğin download linkinin yada buttonunu üzerine geldiğimzde sayfada

    /index.php/programlar/araclar/dosya-sikistiricilar.raw?task=callelement&item_id=16&element=8c92bdb8-39ac-4ede-8a86-ff268f29a25c&method=download

    Şeklinde download linki veriyor ama bu link esas diren linki maskeliyor.. Birinci yöntemde bekleme süresi hariç problemsiz çalışıyor ve program iniyor ikinci yöntemde yukarıdaki linki açarak boş sayfa gösteriyor..



    < Bu mesaj bu kişi tarafından değiştirildi ByDeniS -- 12 Mart 2014; 13:35:54 >







  • Boş sayfa açtığını belirtmiştim boş sayfaya yönlenmeden
    return header('Location:'.$URL);

    kodunu kullandım bu ne kadar sağlıklı olur yada bana ne kadar problem çıkartabilir.
  • ByDeniS B kullanıcısına yanıt
     
    $dosya = $_GET['dosya'];
    if (file_exists($dosya)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($dosya));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    header('Content-Length: ' . filesize($dosya));
    ob_clean();
    flush();
    readfile($dosya);
    exit;
    }else{
    echo $dosya." Dosyası Bulunamadı !";
    }

    bu kodu kullan işte
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.