Content-Disposition kullanarak dosyaları gönder: paralel eki

2 Cevap php

I have a PHP page that sends a file to the browser depending on the request data it receives. getfile.php?get=something sends file A, getfile.php?get=somethingelse sends file B and so on and so forth. This is done like so:

header('Content-Disposition: attachment; filename='. urlencode($filename));
readfile($fileURL);

Sadece bir seferde bir dosya gönderebilirsiniz dışında çalışır. Istenen diğer dosyaları lineer olarak gönderilir. Bir kısa sürede başka bitirir olarak başlar.

Nasıl ben bir indirirken kullanıcı başka dosya isterse, bu paralel dosya göndermek için alabilirim?

Edit: Apache, ne tarayıcı ne bir sorun var gibi görünüyor bu yüzden, doğrudan filepaths kullanarak çalıştığını tarafından aynı anda iki dosya indirme denedim. PHP sorun gibi görünüyor. Ben sayfanın başında session_start kullanılan yol () tarafından var.

2 Cevap

Ben oturumu ile bitmiş ve indirme başlamadan önce sorunu çözmüş gibi görünüyor ediyorum hemen sonra () session_write_close ekleme.

Bu aşağı tarayıcı ayarlarına, sunucu ayarları, PHP, ya da üç olabilir. Tarayıcıların çoğu, sadece başkalarına kuyruk, aynı sunucuya iki eşzamanlı HTTP bağlantıları işleyecek. Aynı tarayıcı ikiden fazla varsa birçok web servers aynı zamanda bağlantıları kuyruk. Eğer oturumları kullanıyorsanız, PHP yarış koşulları en aza indirmek için (bir seferde sadece tek bir aktif isteği) oturumda tatmin edici istekleri seri hale olabilir. (PHP bu yaparsa ben bilmiyorum; bazıları yapmak.)

Bu (sunucu ve PHP) İki size kontrol sizdedir; çok değil Eğer tarayıcı hakkında yapabilirsiniz.

Biraz OT, ama her zaman onları birden fazla dosya seçin ve sonra dinamik olarak oluşturulan bir zip (ya da diğer konteyner biçimi) onları geri göndermek için izin verebilir.