PHP dosyası indir zorluyor.

1 Cevap

Ben bir zip dosyası görüntüleri sıkıştırır ve daha sonra indirmek için zip dosyasını zorlayarak bir PHP komut dosyası var, bir sorun var. Şimdi benim sorun bu sofar indirildi ne kadar alan IE gösteren değil değildir. Kalan 15secs 20MB ait örneğin 2MB dışarıda ...... Firefox mükemmel çalışır.

Benim kod

           header("Content-Disposition: attachment; filename=" . urlencode($zipfile));
        header("Content-Type: application/x-zip-compressed");
        header("Content-Description: File Transfer");    
           header("Content-Transfer-Encoding: binary");
           header("Content-Length: " . filesize($filename));

            $fd = fopen($filename,'r');

            $content = fread($fd, filesize($filename));



            print $content;

1 Cevap

Ana sorun, açıklamada belirtildiği gibi, sen önce dosya boyutuna bağlı olarak çok uzun beklemek neden olabilecek gönderme belleğe tüm dosya depolama olmasıdır. Segmentleri örneğin 1024 byte bloklar, belleğe okuma olarak ne yapmak istersiniz çıktı tamponu olduğunu.

Sen çizgisinde daha fazla şey deneyebilirsiniz:

if ($file = fopen($filename, 'rb')) {
    while(!feof($file)) {
        print(fread($file, 1024*8));
        flush();
    }
    fclose($file);
}

Önce çıkış için tüm dosyayı okumak için denemez, ancak dosyanın yerine çıkış blokları onlar çıktı tamponunda okunur olarak hangi.