プロが教える店舗&オフィスのセキュリティ対策術

◆環境◆
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が表示されるだけになってしまったり・・。

色々試してみましたが、万策尽き、ご質問させて頂きました。
何か根本的な事が間違っている様な気もしますが、
ご教授願えたらと思います。

何卒よろしくお願い致します。

A 回答 (3件)

is_dir


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

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

おかげ様で、滑らかな画像表示となりました!
ありがとうございます!

お礼日時:2009/07/01 11:32

ANo.1です。

たびたびすいません。

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

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

お礼日時:2009/07/01 11:30

コードは検証していませんが、、


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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!