Pergunta

Eu tenho um arquivo php que serve um arquivo, mas o problema é que, independentemente do navegador que esteja sendo usado, se você clicar em 2 links que vão para 2 arquivos separados, o segundo download não inicia até que o primeiro seja concluído ! Alguma ideia?

Baixar código

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

Exemplo de links

  • Link 1: Download.php? Downloadfile = 1
  • Link 2: Download.php? Downloadfile = 2
Foi útil?

Solução

Pode haver diferentes razões para isso.

  • Você está usando sessões. Portanto, apenas um script de cada vez pode modificar a sessão. Portanto, o download b só pode começar após o download de terminado. Você tentou dois downloads simultaneamente com o download A no navegador A e o download b no navegador B? Verifique a descrição de session_write_close

  • Algum outro problema HTTP, onde o seu navegador não abrirá várias conexões com o servidor, mas reutiliza uma única conexão e, é claro, deve esperar até que a solicitação primeiro termine.

  • Alguma configuração do SO/WebServer, que permite apenas um número muito limitado de conexões simultâneas abertas no total ou por host

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top