• 締切済み

phpで画像表示した際に

veiw.php?id=1のような形式でphpで画像表示しています。 各ブラウザで画像右クリックで保存すると違いがあり質問です。 画像表示のファイル名はview.phpで出力形式はjpgというのが前提で 保存時の各ファイル名は下記の通りでした。 ie7=view.jpg FF3=view.php Chrome=view.php.jpg opera=view.jpeg FF3以外はそれぞれファイル名が微妙に異なるものの画像として保存 できるのですがFF3のみ拡張子がphpとして保存されてしまいます。 ※保存させる事が表示の目的ではないのですが気になったもので・・・ 保存されたファイルをエディタで開いても 『ファイルに含まれていたNull文字(00H)は、スペースに変換して開きます。』 とアラートが表示されそのまま開くとすっかり文字化け?しているようで ソースが見られるというような事もないので問題ないと思うのですが 全てのブラウザで保存した際に画像として保存させたいのですが どうすれば可能でしょうか? FF3だけ違うのでブラウザの仕様?とも思ったのですがご存知の方が いらっしゃいましたらアドバイスお願い致します。

みんなの回答

  • papa987
  • ベストアンサー率19% (21/106)
回答No.3

追記: どうしてもファイル名が気になるようなら header("Content-Disposition: attachment; filename=view.jpg"); ってやればいいですよ。

dcx147
質問者

お礼

お返事ありがとうございます。 FF3のアドオンのLiveHTTPheaderで確認したのですがContent-typeは 設定されてありました。 header("Content-Disposition: attachment; filename=view.jpg"); をContent-typeの下に入れたところ右クリックで画像だけを表示を 選択しても保存ダイアログが表示されてしまうようになりました。 ちなみにview.jpgで保存されるのですが挙動が謎です・・・

dcx147
質問者

補足

追記です。DBからファイル名を取得しGDでリサイズし出力しており私の 手順に問題があるのかと思い単純なソースでやってみたところやはり view.phpで保存されてしまいますね・・・ ちなみに下記URLのソースで試しました。 http://www.phppro.jp/phpmanual/php/function.imagejpeg.htmlの 例1 JPEG 画像の出力です。

  • papa987
  • ベストアンサー率19% (21/106)
回答No.2

しっかり header('Content-Type: image/jpeg'); とやってheaderでファイルのタイプを指定していますか? 当方自作のサムネイル用プログラム(GD使用)では Firefox 3.0.8環境では「.php.jpg」とjpg拡張子がつきますね。

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

それはブラウザの挙動の問題だから情報としては拡張子を付ければ画像として認識できるようになる筈だよ。

dcx147
質問者

お礼

早速のお返事ありがとうございます。 ブラウザの仕様なのですね~phpをjpgに変えたところ問題なく画像として保存表示ができました。 保存させるのが目的でもないのでそこまで気にする必要もないってことですかね^^;

関連するQ&A