PHP ile indirmeyi neden zaman bir dosyanın boyutuna bazı limit var mı?

4 Cevap php

Her zamanki kullanarak PHP ile dosya-indirme zorlamak için çalışıyor:

header("Content-type: $type" );
header("Content-Disposition: attachment; filename=$name");
header('Content-Length: ' . filesize($path));

Ve bu yerde 32 mb altında dosyaları başarıyla yapar. Daha büyük olanlar için sadece sıfırlanmış dosyayı döndürür.

Açıkçası orada limit çeşit, ama ne belirliyor? Apache 2.2.11 ve PHP 5.3.0 kullanma.

4 Cevap

Eğer alıcıya aşağı göndermeden önce RAM'e tüm dosya yükleme konum gibi görünüyor. Önce RAM içine hepsini okumak zorunda kalmadan tam dosya içeriğini göndermek için edebilmek için PHP Akımlar içine bakmak istersiniz: http://php.net/streams

Sonunda bu yazı üzerine tökezledi: http://w-shadow.com/blog/2007/08/12/how-to-force-file-download-with-php/. Kullanan var ve ayrıca önerilen tüm başlıkları ekleme:

 ob_end_clean(); //turn off output buffering to decrease cpu usage

Her çıkıştan önce - yardımcı olmuştur. Artık sınırlamalar gözlemlenebilir. Dosyalar tamamen hatta büyük olanları indirmek.

Php.ini içinde size ayarını göreceksiniz.

Kafamın üst kapalı seçeneği adını hatırlayamıyorum, ama şimdi benim php.ini içine bakmak ve denemek ve onu bulacaksınız.

Sadece onu kaldırmak ve bu iş olacak.

Added

Tamam, ben yanlışım varsa beni düzeltin, ama lütfen birisi olduğunu

memory_limit

Ayrıca set_time_limit(0); gerekebilir