• 締切済み

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だけ違うのでブラウザの仕様?とも思ったのですがご存知の方が いらっしゃいましたらアドバイスお願い致します。

  • dcx147
  • お礼率33% (214/636)
  • PHP
  • 回答数3
  • ありがとう数2

みんなの回答

  • 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

  • php形式のファイルってどうやって表示さしられるの

    php形式のファイルってどうやって表示さしられるのでしょうか? 大切な画像ファイルで保存したんですが、 知らない拡張子がついたファイルになってました、 開こうにもどうやったらいいのか分からず、 phpは何者ですか?又 jpgみたいにシンプルにちゃんと画像として表示できるにはどうしたらいいのでしょうか?

  • 【PHP】画像が表示されず「×」が表示される

    以下のようなコードで、ブラウザに画像を表示させようとしたところ、画像が表示されず、代わりに「×」印が表示されました。どうすれば画像が表示できるのでしょうか? <?php $img = file_get_contents('./test.jpg'); header('Content-type: image/jpeg'); echo $img; ?> 上記のコードは以下のサイトを参考に書きました(というより、ほぼそのままコピペしただけです。) http://ysklog.net/php/1575.html http://php.birdlab.com/tips/1 【備考】 ・OSはWindows7、XAMPPを導入して動かしています。IE11とChromeのバージョン 37.0.2062.120 m(現時点の最新版のようです)で試しましたがどちらも同じ結果でした。(正確には、Chromeの方は×印ではなく、文字1文字分くらいの大きさの「ファイル」のような画像でしたが…(ネットを見ている際に、画像ファイルが表示されない時に代わりに表示されるアレです)) ・表示した画像ファイル test.jpg はphpファイルと同じフォルダに置いてあります。ファイル名が違う(そもそも存在しないファイル名を指定している)場合には、エラーメッセージが表示されましたので、ファイルの存在は認識されているようです。 ・readfile関数を使っても駄目でした。 ・画像ファイルが壊れているということはありません(画像ファイルのアドレスを直接指定した場合はきちんと表示されます) コードの問題ではなく、環境設定の問題だと思いますが、どこに問題があるのかさっぱりわかりません。よろしくお願い致します。

    • ベストアンサー
    • PHP
  • PHP 画像の表示

    プログラミング初心者です。 PHPでブラウザに画像を表示したいのですが映らなくて 以下のソースコードは間違っているでしょうか? <?php $fileName = "img/test.jpg"; //ファイル名 if (file_exists($fileName)) { header('Content-type: image/jpeg'); header('Content-Length: '.filesize("http://localhost:8080/test.jpg")); //あった方が良い readfile("http://localhost:8080/test.jpg"); //ファイルを読み込んで標準出力に書き出し exit; } ?>

    • ベストアンサー
    • PHP
  • mysqlに保存した画像を表示したい

    フォームからmysqlに画像(jpg形式)を保存しました。 カラム名はmain_imgでblob型です。 流れとしては 1:入力フォーム // イメージ取得 $image = file_get_contents($_FILES['image']['tmp_name']); // 取得したイメージをセッションに代入 $_SESSION['regist']['image'] = $image; 2:確認ページ 特になにもせず 3:登録完了ページ $_SESSION['regist']['image']をmysql_real_escape_stringし 変数名を$imageに変更。 カラム名main_imgに$imageをINSERT この段階でphpmyadminを見るとカラム名main_imgには [BLOB - 4.3 KiB]となっております。 次にmysqlに保存した画像を表示させたいと思い ---view.php--- $res =& $mdb2->query('SELECT * FROM products'); while ($row = $res->fetchRow()) { $img_list['main_img'] = $row['main_img']; } $mdb2->disconnect(); header('Content-type: image/jpeg'); echo $img_list['main_img']; ---view.html--- <img src="view.php?id=2" /> としたのですがなぜか画像が表示されません。 header('Content-type: image/jpeg');をコメントアウトすると 意味不明な文字列?が表示されます。 view.phpにアクセスするとhttp://~~/view.phpとurlが 画像として表示されFireFoxでブラウザを更新すると一瞬だけ 『画像ファイル "http://~~/view.php" は壊れているため、表示できませんでした。』 と表示されます。 ie,safariでも試しましたが画像は表示されませんでした。 調べてみたのですが同じような事例がみつからなかったのですが 解決するにはどうすればいいものでしょうか?

    • ベストアンサー
    • PHP
  • 画像検索で保存した画像が表示出来ない

    画像検索を使用して保存した画像の中に、拡張子がphpになっていて表示することが出来ないファイルがありました。 このファイルを表示する方法はありますか? どうして画像ファイルがphpで保存されてしまったのでしょうか? というか、このファイルは安全でしょうか? 検索設定で対象をjpgに指定してあるため、他のファイルはすべてjpgで保存されており、問題なく表示されています。ひとつだけ拡張子が違うファイルがあったので、気になって質問させて頂きました。 使用しているのはAndroidのスマートフォンです。 よろしくお願いしますm(_ _)m

  • 画像を開こうとしたら、「未知の形式」という表示が出ました。

    マイピクチャやフォルダ内の画像を開こうとしたら、「未知の形式(ファイル名)・・・」という表示が出て急に開けなくなりました。 対処法ありますか? 画像を保存するときは、ほとんどjpgか、bmpで保存しています。右クリックして「プログラムから開く」を選択すれば、開けます。

  • phpで画像処理

    phpで画像処理 いつもお世話になっております。 phpで画像処理を行いたいのですが どのような方法があるかご存知の方いませんでしょうか。 内容としては ある画像ファイルの予め決めた場所に 文字を出力しブラウザに表示するという仕様です。(phpファイルにアクセスした際)

    • ベストアンサー
    • PHP
  • HTMLでRGBデータを使って画像を表示させることはできますか?

     ブラウザで表示できないファイル形式の画像を表示させるためのCGIプログラムを作成しています。  ファイルから圧縮されたRGBデータを解凍して取り出すことまではできました。これを別のファイル形式にして保存するのではなく、RGBデータをそのまま使用してHTMLで表示できないかと考えています。  ファイルを指定して画像を表示するのではなく0から255もしくは00からffのデータの配列でHTMLに出力する方法があるか教えてください。

    • ベストアンサー
    • HTML
  • IEで画像を保存する際に名前が変わってしまう

    IEで表示した画像をマウスでデスクトップ等にドラッグアンドドロップで保存すると、本来の画像のファイル名の尻に [1] という文字列が追記されます。 例: abc.jpg を保存すると abc[1].jpg になる。 もともとはこのようなことはなかったんです。 この文字列が付かないようにする方法を教えてください。 お願いします。

  • %を含む画像Lが表示されません。

    画像ファイル名black/navy.gifをurlencode()して、 black%2Fnavy.gifという画像でLinuxサーバーに 保存したのですが、ブラウザのURLに入力しても %を含むファイル名ではHTTP 400-正しくない要求 と表示され画面に画像が表示されません。 %のあるファイル名はブラウザで読み込めないのでしょうか? 又、/はLinuxではファイル名で使用できないので URLエンコードしたのですが、駄目であればこういう場合、どういう文字に置き換えれば良いでしょうか?

    • ベストアンサー
    • PHP

専門家に質問してみよう