1

次の状況があります(簡略化):

ドキュメント ルートの外にファイルを配信するスクリプト file.php?file=foo.pdf があります (html はなく、単なるダウンロード プッシュ スクリプトです)。一部のファイルはスクリプトによって保護されています。その場合、ユーザーは login.php にリダイレクトされます。ログインに成功すると、ユーザーがダウンロードしたいファイルでセッション変数が設定されます。ユーザーは、ダウンロード ソース file.php?file=foo.pdf で iframe を作成する home.php にリダイレクトされます。スクリプト file.php がダウンロードのプッシュを開始すると、セッション変数の設定が解除されます。

これは Firefox では機能しますが、IE ではセキュリティ警告が表示され、ダウンロードがブロックされます。バーをクリックしてダウンロードを許可すると、IE はページをリロードします。ただし、セッションが既に設定解除されているため、iframe は生成されないため、ファイルは「再度」ダウンロードされません。

IE は実際に最初のダウンロードを開始するように見えますが、ヘッダーを受信すると中止します。したがって、ブラウザによってダウンロードが中止されたかどうかを判断する機会はないと思います。

誰にもこれに対する解決策がありますか?(ダウンロードボタンは必要ありません)。

4

3 に答える 3

0

これに夢中になった後(応答に感謝しますが、どれも問題を解決しませんでした-IEはダウンロード要求でCookieを設定していますが、その後ダウンロードをブロックしています)、これに対処する唯一の方法は提供することだと思う傾向がありますユーザーがダウンロード リンク (または少なくとも何らかのダウンロード オーバーレイ) をアクティブにクリックできるダウンロード ページ。

于 2010-12-01T10:27:24.770 に答える
0

ダウンロードリンクで iframe を「ターゲット」にしていますか?

target="parent" にしないのはなぜですか? HTML と変更された MIME ヘッダー (オクテット ストリームまたは強制ダウンロードを想定しています) がなければ、ページはオーバーライドされず、ダウンロードは成功します。

于 2010-11-19T08:34:24.837 に答える
0

私が間違っているかもしれませんが、ファイルを iframe に送信した後にセッション変数の設定を解除しようとしましたか? その場合、IE セキュリティ チェックがダウンロード変数を保持するときに、次の要求のためにまだ存在する可能性があります。

于 2010-11-19T08:31:14.130 に答える