Загрузка файлов с помощью PHP - загружайте только по одному за раз!

StackOverflow https://stackoverflow.com/questions/1610168

  •  05-07-2019
  •  | 
  •  

Вопрос

У меня есть 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:скачать.php?downloadfile=1
  • Ссылка 2:скачать.php?downloadfile=2
Это было полезно?

Решение

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

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

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

  • Некоторая настройка операционной СИСТЕМЫ / веб-сервера, которая допускает только очень ограниченное количество открытых одновременных подключений либо в целом, либо для каждого хоста

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top