Dinamik APACHE dosyaları servis Günlük Kaydı

4 Cevap php

Ben gibi bir çıktısını kullanarak PHP ile anında Zip ve PDF dosyaları hizmet ediyorum:

header('Content-Disposition: attachment; filename="'.$project->name .'.zip"');
echo($zipfile->zl_pack());

Ama benim APACHE günlüklerinde bu siteleri için herhangi bir başvuru bulamıyor. Nedeniyle, dinamik olmak için giriş değil mi?

Ben aslında sunucunuza dosya yazma ve sonra günlüğe ya da bir şey eksik yukarı sonucunu hizmet etmek gerekiyor?

Cheers, Niggles

4 Cevap

Doğru. httpd giriş için giden başlıklarına bakmaz. error_log() httpd hata günlüğüne bir mesaj göndermek, ancak erişim günlüğüne bir şey koymak için hiçbir yolu yoktur olacaktır.

Bu başlık üretir PHP program için talep açmış olmalıdır. İçerik kullanım başlığında belirtilen dosya olmayacaktır.

Ben mod_php benzer bir özellik sağlıyorsa MOD_ perl would allow you to add custom logging, bilmiyorum inanıyorum.

Geçici bir çözüm olarak, *. Zip dosyası açmış ve hala aslında dosya sistemine yazmadan PHP aracılığıyla hizmet için mod_rewrite kullanabilirsiniz, istemci olsa iki istekleri göndermek zorunda kalacak.

1) Bu dosyayı üretmek değil böylece mevcut komut değiştirme, ancak bunun yerine oturumda dosya oluşturulması için gerekli parametreleri koyar; yerine geçerli başlık ve dosya içeriğinin koymak header('Location: '.$project->name .'.zip'); olur

2) Bu ikinci isteği neden olur. İstenen dosya henüz mevcut olmadığından, sen oturumdan parametreleri okur ve bunu yapıyoruz gibi dosya üretir ki, aynı veya başka bir PHP komut dosyası için bir *. Zip dosyası isteği değiştirmek için mod_rewrite kullanmak istiyorsunuz şimdi. Aynı PHP komut dosyası kullanıyorsanız, ayrıca mod_rewrite isteğine "action = produceFile" gibi bazı parametresini ekleyin ve sonra komut o parametre için test edelim istiyorum.

Bu şekilde fiziksel dosyayı kaydetmek (ve muhtemelen daha sonra silebilirsiniz) zorunda kalmadan Apache günlüğüne iki güzel girdileri olurdu.

Bilginize Ben gerçekten iyi bir iş çevresinde bulundu.

Sorunun bir parçası biz zorlamak istedim bir kullanıcı birçok dosya kurtulur nerede karışık almak gibi bir diyalog "olarak kaydetmek". Ben gittim yüzden bu

Content-Disposition : attachment

yöntemi.

Hala diyalog çağırır Daha iyi bir yöntem. Htaccess bu eklemek için

<Files *.zip>
ForceType application/octet-stream
Header set Content-Disposition attachment
</Files>

dosyasunucusu için Zip yazmak ve zip yönlendirme sayfası.

Tabii ben her gece temizleme var, ama oturum alır ve yine onlar ([bir zaman var] Safari ama hemen hemen her şeyi) Dosyayı indirmek yeri seçmek için onları zorlar.

Cheers, Niggles