2012-04-05 11 views
5

iはPHPで画像を読むには?

$localfile = $_FILES['media']['tmp_name']; 

は、POSTメソッドを使用したこと、与えられた画像を取得することを知っています。私は自分のコードと同じディレクトリにある画像を読み込もうとしています。どのように私はそれを読んで、上記のような変数に割り当てるのですか?

+0

はあなたの例では、ファイル名だけ、イメージのない内容を読み取りhttpに。あなたは何をしようとしていますか? – Cal

答えて

9

あなたが投稿したコードは画像データではなく、そのファイル名を読み上げます。あなたが画像を読み込むthe GD libraryを使用することができ、そうでない場合

$im = file_get_contents("./image.jpeg"); 
header("Content-type: image/jpeg"); 
echo $im; 

:あなたは、同じディレクトリ内の画像を取得する必要がある場合は、ブラウザに直接出力を使用することができ、file_get_contents()でその内容を取得することができますさらに、画像処理用のデータ:

$im = imagecreatefromjpeg("./image.jpeg"); 
if ($im) { 
    // do other stuff... 
    // Output the result 
    header("Content-type: image/jpeg"); 
    imagejpeg($im); 
} 

最後に、あなたに(それはあなたのコードと同じ場所にいた場合、あなたがすべきですが)、あなたが使用することができますあなたが必要とする画像のファイル名がわからない場合​​3210すべてのjpegを見つけるには、たとえば:

$jpegs = glob("./*.jpg"); 
foreach ($jpegs as $jpg) { 
    // print the filename 
    echo $jpg; 
} 
+0

これらの2つの違いは何ですか? \t \t \t \t \t \t $ localfile = $ _FILES ['media'] ['tmp_name']; \t \t \t \t \t \t $ filename = $ _FILES ['media'] ['name']; –

+0

1つはサーバー(tmp_name)に保存されているファイルのファイル名で、もう1つはファイル(名前)をアップロードしたクライアントコンピュータの元のファイル名です。 – Cal

+0

@Mozammil 'name'は、ユーザがアップロードしたファイルの元の名前を指します。 'tmp_name'は、実際のファイルデータを指す、一時的なスペースでPHPによって割り当てられたファイル名です。スクリプトが終了するまで存在し、 'tmp_name'はもはや有効ではありません。 –

0

あなたは画像を読み込んで画像パスがURLの場合

$image="path-to-your-image"; //this can also be a url 
$filename = basename($image); 
$file_extension = strtolower(substr(strrchr($filename,"."),1)); 
switch($file_extension) { 
    case "gif": $ctype="image/gif"; break; 
    case "png": $ctype="image/png"; break; 
    case "jpeg": 
    case "jpg": $ctype="image/jpeg"; break; 
    default: 
} 

header('Content-type: ' . $ctype); 
$image = file_get_contents($image); 
echo $image; 

としてそれをレンダリングする、そしてそれは、HTTPSを使用している場合://プロトコルは、あなたが変更する場合がありますプロトコルは

Working fiddle