Question

J'ai un fichier PHP qui sert un fichier, mais le problème est que peu importe le navigateur utilisé, si vous cliquez sur 2 liens menant à 2 fichiers séparés, le deuxième téléchargement ne commence pas avant le premier. on est complet! Des idées?

Code de téléchargement

header('Content-Type: application/octet-stream');
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename="'.basename($filename).'"');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($fullpath));
readfile($fullpath);

Exemple de liens

  • Lien 1: download.php? downloadfile = 1
  • Lien 2: download.php? downloadfile = 2
Était-ce utile?

La solution

Les raisons peuvent être différentes.

  • Vous utilisez des sessions. Par conséquent, un seul script à la fois est autorisé à modifier la session. Donc, le téléchargement B ne peut commencer que lorsque le téléchargement A est terminé. Avez-vous essayé deux téléchargements simultanément avec le téléchargement A dans le navigateur A et le téléchargement B dans le navigateur B? Vérifiez la description de session_write_close

  • Un autre problème HTTP dans lequel votre navigateur n'ouvre pas plusieurs connexions au serveur, mais réutilise une seule connexion et doit évidemment attendre la fin de la première requête.

  • Certains paramètres OS / Webserver n'autorisant qu'un nombre très limité de connexions simultanées ouvertes, au total ou par hôte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top