人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPで、サーバー上のファイルをブラウザからダウンロードするプログラムを組んでいます。
普通のhttpサイトに置いてテストしていた場合、ダウンロードできていたのですが、SSL(https)の本番サーバーに乗せると、「開く」と「保存」で「保存」を選ぶと「Internet Explorerでは、(ファイル名) をダウンロードできません。
このインターネットのサイトを開くことができませんでした。要求されたサイトが使用できないか、見つけることができません。後でやり直してください。」
というエラーがでてしまいます。
「開く」だと普通に開けるので、本当にファイルがないわけではないのですが、原因は何でしょうか。
ちなみにno-cache設定は、していたのですが下記を見てはずしましたのでこれ以外が原因だと思います。
http://www.tsuhtan.net/java/general.html#2

●質問者: golbeza
●カテゴリ:コンピュータ
✍キーワード:cache HTTP HTTPS Internet Explorer PHP
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● kura_jet
●150ポイント

http://support.microsoft.com/default.aspx?scid=kb;ja;436605

Content-Disposition: attachemnt と Cache-Control: no-cache によるダウンロードの問題

コレが原因では?

http://www.php.net/manual/ja/function.session-cache-limiter.php

PHP: session_cache_limiter - Manual

回避策としては、セッションをスタートする前に

session_cache_limiter(’public’);

の1行を追加することでダウンロードが可能になりました。

◎質問者からの返答

ありがとうございます、session_cache_limiter(’public’);

を試してみます。

---------------------------------------------

試しました。

session_cache_limiter(’public’);

を記述することでOKでした! ありがとうございます。

Content-Disposition: attachment;

については、

Content-Disposition: attachment; filename=”ファイル名”

という感じでファイル名を指定する際に使用しているのですが、これを表記しないとファイル名が指定できないと思うのですが、これが原因でエラーになるとするとどうすればよいのでしょう・・・(session_cache_limiter(’public’);で上記を記述していてもエラーが出なくなるようですとよいのですが)

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ