Ben bir ziyaretçi bir dosya indirmek izin aşağıdaki script var:
header( 'Content-Type: application/octet-stream' );
header( 'Content-Transfer-Encoding: binary' );
header( 'Content-Disposition: attachment; filename=' . $fileName );
header( 'Content-Length: ' . filesize( $filePath ) );
header( 'Content-Description: Download' );
header( 'Cache-Control: private' );
header( 'Pragma: no-cache' );
header( 'Expires: 0' );
readfile( $filePath );
exit();
O çok iyi çalışmıyor. (Ben de tırnak, aynı sonucu dosya koyduk).
Bu çok yavaş davranır, bazen indirme hatta durdurmak. Opera özellikle, bu indirme% 99 durur. Bazen bile hemen% 99 tamamlanmış gösterir, o zaman indirmeye başlar ve çevresinde% 34 de durur.
Sunucu paylaşılan bir bilgisayar, Mac OS X sunucusudur.
Firefox'un Live HTTP başlıklarını add-on kullanarak, ben sunucu yanıt aditional başlıkları ekler fark ettik:
HTTP/1.1 200 OK
Date: Thu, 18 Feb 2010 09:27:25 GMT
Server: Apache
X-Powered-By: PHP/5.2.12
Content-Transfer-Encoding: binary
Content-Disposition: attachment; filename=test.psd
Content-Length: 398635
Content-Description: Download
Cache-Control: private
Pragma: no-cache
Expires: 0
Content-Encoding: gzip // <-- expecially this one,
Vary: Accept-Encoding // <-- this one,
MS-Author-Via: DAV // <-- and this one
Keep-Alive: timeout=10, max=100
Connection: Keep-Alive
Content-Type: application/octet-stream
Bu sorunun nedeni ne olabilir?
Benim localhost komut dosyasını çalıştırdığınızda her şey çalışıyor. Ben doğrudan bu ana bilgisayardan dosya indirmek, ayrıca, hız da gayet iyi ve akıcı olduğunu.
Bu sefer gerçekten oldukça clueless değilim. Senin yardım appeciated edilir. Şimdiden teşekkür ederim.
UPDATE:
Ben darboğaz sorunu daralmış düşünüyorum. Webserver otomatik gzip çıkışını sıkıştırır. Ben kaldırıldı ne zaman PHP komut her şeyi Content-Length
başlık pürüzsüz indirme başladı. Bu mantıklı: değeri Content-Length
Artık gerçek gzip'li çıktı eşleşmiyor. PHP ben Content-Length
başlığı ayarlamak için sıkıştırılmamış dosya boyu okumak, ama daha sonra, Apache sıkıştırır ve tarayıcılar kısık nerede bu muhtemelen.
Ben webserver otomatik gzip çıkışını sıkıştırır zaman doğru Content-Length
başlık boyutunu ayarlamak için nasıl bir soru ile bu soruyu takip edeceğiz.