Download de arquivos com PHP - apenas baixando um de cada vez!
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
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