Загрузка файлов с помощью PHP - загрузка только по одному за раз! - PullRequest
2 голосов
/ 23 октября 2009

У меня есть файл PHP, который обслуживает файл, но проблема в том, что независимо от того, какой браузер используется, если вы нажмете на 2 ссылки, которые ведут на 2 отдельных файла, вторая загрузка не начнется до первой один завершен! Есть идеи?

Код загрузки

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

Примеры ссылок

  • Ссылка 1: download.php? Downloadfile = 1
  • Ссылка 2: download.php? Downloadfile = 2

1 Ответ

5 голосов
/ 23 октября 2009

Для этого могут быть разные причины.

  • Вы используете сеансы. Поэтому за один раз разрешено изменять только один сценарий. Таким образом, загрузка B может начаться только после завершения загрузки A. Пробовали ли вы две загрузки одновременно с загрузкой A в браузере A и загрузкой B в браузере B? Проверьте описание для session_write_close

  • Некоторая другая проблема HTTP, когда ваш браузер не открывает несколько соединений с сервером, а повторно использует одно соединение, и, конечно, таким образом приходится ждать завершения первого запроса.

  • Некоторые настройки ОС / веб-сервера, которые допускают только очень ограниченное количество открытых одновременных подключений, либо в целом, либо на хост

...