Dosya İndirme Çalışmıyor

2 Cevap php

Ben orijinal zip indirebilirsiniz zaman çalışıyor, ama ben aşağıda başlıklarını kullanarak indirebilirsiniz ve şeyler zaman çalışmaz. Ben bu yoldan ve dosyayı işlemek yerine tarayıcıya kadar bırakmak için nasıl tarayıcı anlatmak için daha iyi biliyorum, ama ben bu işe alınamıyor, bu yüzden () ileri bir başlık kullanmak çeliyor.

            $path = $this->tru->config->get('root.path').'/Digital Version of Book for Web.zip';

            set_time_limit(0);
            header("Cache-Control: public");
            header("Content-Description: File Transfer");
            header('Content-Type: application/zip');
            header("Content-Transfer-Encoding: binary");
            header('Content-Disposition: attachment; filename="NewFileName.zip"');
            header('Content-Length: ' . filesize($path));

            $f = fopen($path, 'rb');
            fpassthru($f);
            fclose($f);

Edit:

Üzgünüm, ne işe yaramazsa o demek geçersiz çünkü dosya bir zip formatında (Tüm 9.3 MB) İndir ama zip paketini edemiyor olmam.

2 Cevap

Not Defteri'ni veya başka bir metin düzenleyicisi kullanarak ZIP dosyası içine bir göz atın. Ilk birkaç satır dosyayı vidalama PHP hata mesajı olup olmadığını kontrol edin. Bu bir "zaten gönderildi başlıklar" mesajı veya bağlı komut güvenli modda olmanın bir hata atma set_time_limit() çağrı olabilir.

Kullanmayı deneyin readfile(). Bir örnek, PHP Manual sağlanır.

$file = 'monkey.gif';

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($file));
    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($file));
    ob_clean();
    flush();
    readfile($file);
    exit;
}