• ベストアンサー

imagejpegで表示されない。

◆環境◆ PHP Version 5.1.6 apache : 2.x GD Support: enabled GD Version: bundled (2.0.28 compatible) FreeType Support : enabled FreeType Linkage : with TTF library FreeType Version : 1.4 GIF Read Support : enabled GIF Create Support : enabled JPG Support : enabled PNG Support : enabled WBMP Support : enabled XBM Support : enabled ◆質問◆ 既にアップロードされた画像をサムネイルして、表示したいのですが、 バイナリ表示までは出来たのですが、画像が表示できません。 ※$imgにはhttp://www.xxxx.com/image/abcといったファイル名までの絶対パスを取得した文字列が入ります。 <?php $new_img = $img."_thumb.jpg"; $old_img = $img.".jpg"; if(is_dir($img)){ unlink($new_img); }else{ mkdir($img); } list($old_width, $old_height, $old_type, $old_attr) = getimagesize($old_img); //縮小のサイズ $thumbwidth=93; $thumbheight=30; //画像の縮小 $src_im = imagecreatefromjpeg($old_img);//元の画像 $dst_im = imagecreatetruecolor($thumbwidth, $thumbheight);//縮小画像 imagecopyresampled($dst_im,$src_im,0,0,0,0,$thumbwidth,$thumbheight,$old_width,$old_height); imagejpeg($dst_im,$new_img); ?> 一番最後の imagejpeg($dst_im,$new_img); を imagejpeg($dst_im); にするとバイナリが表示されるのですが、 imagejpeg($dst_im,$new_img); にすると何も表示されなくなってしまいます。。 $new_imgのURLにアクセスしても画像が生成されていないようです。 header('Content-type: image/jpeg');を追記すれば良いのか!とも思ったのですが、 追記後にページを見るとサイトのURLが表示されるだけになってしまったり・・。 色々試してみましたが、万策尽き、ご質問させて頂きました。 何か根本的な事が間違っている様な気もしますが、 ご教授願えたらと思います。 何卒よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

is_dir unlink mkdir imagejpegのファイル名 などにはURLは使えないと思いますよ $imgを"./image/abc"のような相対パスにしたらどうでしょう

hambarg
質問者

お礼

大変遅くなり、大変申し訳ございません! 相対パスにすれば、表示ができました! RSSから画像のURLを取得していたので、httpからになってしまっていたのですが、よくよく考えると、表示するページのディレクトリとアップロードされる画像のディレクトリを考えると、相対パスでかける事に気付きました! おかげ様で、滑らかな画像表示となりました! ありがとうございます!

その他の回答 (2)

  • UmJammer
  • ベストアンサー率58% (115/196)
回答No.3

ANo.1です。たびたびすいません。 ANo.2の方の回答を見て気付いたのですが、$imgはURLの絶対パスのことなんですね。ファイルシステム上の絶対パスと勘違いしていました。 私の回答は参考にする必要はないでしょう。

hambarg
質問者

お礼

遅くなりまして、大変申し訳ございませんでした。 何度も返信を頂きましてありがとうございます!

  • UmJammer
  • ベストアンサー率58% (115/196)
回答No.1

コードは検証していませんが、、 >$new_imgのURLにアクセスしても画像が生成されていないようです。 ここはブラウザで確認するのではなくて、FTPやSSHでログインして確認してみた方がよいかと思います。 予期せぬ場所、予期せぬ名前でファイルが保存されているかもしれませんし、ブラウザからのアクセスの方法が悪いかもしれません。

関連するQ&A