2012-03-31 23 views
2

PHPを使用して画像を読み込もうとしていますが、その方法はわかりません。 ファイル名は、クライアントがそうPHPを使用した画像のロード

http://example.com/index.php?image=1 

ような画像を要求し、それは次のように埋め込むことができるので、それは、画像を返すべき必要ようimage.jpg

if($_GET['image']){ 
    // Client requesting image, so retrieve it from DB 
    $id = mysql_real_escape_string($_GET['image']); 
    $sql = "SELECT * FROM $tbl_name WHERE id = '$id' LIMIT 1"; 
} 

として、データベースに格納されています:

<img src="http://example.com/index.php?image=1" alt="" /> 

これは可能ですか?

+0

すべての画像はJPGですか? – safarov

答えて

13
$img = 'path/to/image.jpg'; 
header('Content-Type: image/jpeg'); 
readfile($img); 

は、ちょうどあなたがそのためにGDライブラリを使用することができます

+0

完璧なおかげで! – Adam

+1

また、[readfile](http://php.net/manual/en/function.readfile.php)を見て、それは 'file_get_contents'と' echo'のステップを "組み合わせ"ます。 – stewe

0

まず、image.phpというファイルを作成することをお勧めします。ですから、image.phpを呼ぶでしょうか?id = 1

image.phpヘッダーをイメージタイプにしてください。ヘッダー( 'Content-Type:image/jpeg');

その後、PHPでGDImageライブラリを使用して画像を読み込んで出力することができます。または、ファイルを読み込んで出力することもできます。 header()はキーです。

2

それをテストしました。まず、http://php.net/imagecreatefromjpegのような関数を使ってリソースを作成します。パスをパラメータとして指定する必要があります。

その後、http://php.net/imagejpegのような関数を使用してリソースを出力するだけです。

コンテンツタイプヘッダーを送信し、リソースでimagedestroyを使用することも忘れないでください。

更新:

は、このサンプルを考えてみましょう:

$im = imagecreatefromjpeg('path/to/image.jpg'); 
header('Content-Type: image/jpeg'); 
imagejpeg($img); 
imagedestroy($img); 
+2

GDを使用するポイントは何ですか? – safarov

+0

@safarov多分それは、特定の変更が必要な場合には、拡張が容易になるでしょう。私はそれが唯一の方法であるとは言いませんでした。 – mishu

0

ここに私のソリューションです:

$mime = 'image/jpg'; 
$out_image = 'default.jpg'; //default no photo image 
$user_img = 'image.jpg'; //it can be gif, png, jpg 

//Check if file exist in directory 
if(file_exist('/path/to/'.$user_img)) { 
    $s = imagesize($user_img); 
    $mime = $s['mime']; 
    $out_image = $img_data; 
} 

header('content-type: '.$mime); 
readfile($img_data); 
関連する問題