Pregunta

Tengo un archivo PHP que sirve un archivo, pero el problema es que no importa qué navegador se esté utilizando, si hace clic en 2 enlaces que van a 2 archivos separados, la segunda descarga no comienza hasta la primera. uno esta completo ¿Alguna idea?

Código de descarga

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);

Enlaces de ejemplo

  • Enlace 1: download.php? downloadfile = 1
  • Enlace 2: download.php? downloadfile = 2
¿Fue útil?

Solución

Podría haber diferentes razones para esto.

  • Estás usando sesiones. Por lo tanto, solo un script a la vez puede modificar la sesión. Así que la descarga B solo puede comenzar después de que la descarga A haya terminado. ¿Probó dos descargas simultáneamente con la descarga A en el navegador A y la descarga B en el navegador B? Consulte la descripción para session_write_close

  • Algún otro problema de HTTP en el que su navegador no abrirá varias conexiones al servidor, sino que reutilizará una sola conexión y, por supuesto, tiene que esperar hasta que finalice la primera solicitud.

  • Algunas configuraciones de sistema operativo / servidor web que solo permiten un número muy limitado de conexiones simultáneas abiertas en total o por host

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top