문제

파일을 제공하는 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?다운로드파일=1
  • 링크 2:download.php?다운로드파일=2
도움이 되었습니까?

해결책

여기에는 여러 가지 이유가 있을 수 있습니다.

  • 세션을 사용하고 있습니다.따라서 한 번에 하나의 스크립트만 세션을 수정할 수 있습니다.따라서 다운로드 B는 다운로드 A가 완료된 후에만 시작할 수 있습니다.브라우저 A에서 A 다운로드와 브라우저 B에서 다운로드 B를 동시에 두 번 다운로드해 보셨나요?설명을 확인하세요 session_write_close

  • 브라우저가 서버에 대한 여러 연결을 열지 않고 단일 연결을 재사용하므로 첫 번째 요청이 완료될 때까지 기다려야 하는 다른 HTTP 문제도 있습니다.

  • 전체 또는 호스트당 매우 제한된 수의 열린 동시 연결만 허용하는 일부 OS/웹 서버 설정

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top