次の状況があります(簡略化):
ドキュメント ルートの外にファイルを配信するスクリプト file.php?file=foo.pdf があります (html はなく、単なるダウンロード プッシュ スクリプトです)。一部のファイルはスクリプトによって保護されています。その場合、ユーザーは login.php にリダイレクトされます。ログインに成功すると、ユーザーがダウンロードしたいファイルでセッション変数が設定されます。ユーザーは、ダウンロード ソース file.php?file=foo.pdf で iframe を作成する home.php にリダイレクトされます。スクリプト file.php がダウンロードのプッシュを開始すると、セッション変数の設定が解除されます。
これは Firefox では機能しますが、IE ではセキュリティ警告が表示され、ダウンロードがブロックされます。バーをクリックしてダウンロードを許可すると、IE はページをリロードします。ただし、セッションが既に設定解除されているため、iframe は生成されないため、ファイルは「再度」ダウンロードされません。
IE は実際に最初のダウンロードを開始するように見えますが、ヘッダーを受信すると中止します。したがって、ブラウザによってダウンロードが中止されたかどうかを判断する機会はないと思います。
誰にもこれに対する解決策がありますか?(ダウンロードボタンは必要ありません)。