PHPを使用してファイルをダウンロードする-一度に1つだけダウンロードしてください!
質問
ファイルを提供するPHPファイルがありますが、問題は、使用しているブラウザに関係なく、2つの別々のファイルに移動する2つのリンクをクリックすると、2つ目のダウンロードが最初のダウンロードまで開始されないことです1つが完了しました!アイデアはありますか?
コードをダウンロード
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つのスクリプトのみです。したがって、ダウンロードBは、ダウンロードAが終了した後にのみ開始できます。ブラウザーAでのダウンロードAとブラウザーBでのダウンロードBと同時に2つのダウンロードを試みましたか? session_write_close
の説明を確認してくださいli> -
ブラウザがサーバーへの複数の接続を開かず、単一の接続を再利用するため、最初のリクエストが完了するまで待たなければならないその他のHTTPの問題。
-
合計またはホストごとに非常に限られた数のオープン同時接続のみを許可する一部のOS / Webサーバー設定
所属していません StackOverflow