2010-11-26 18 views

答えて

27

ヘッダーを変更してエコーする必要がありますか?

header("content-type: image/your_image_type");とそれ以降のデータを送信します。

+0

大丈夫、とヘッダ( "Content-Typeの:画像/ JPG"); で十分でしょうか? –

+0

@Belgin JPG画像の場合は、そうです。 –

+3

image/jpegする必要はありませんか? – Rahly

9

あなたはそれを行うことができ、またはあなたがあなたのためにそれを出力しreadfile機能、使用することができます。

header('Content-Type: image/x-png'); //or whatever 
readfile('thefile.png'); 
die(); 

編集:DERP、明らかに明白なタイプミスを修正します。あなたはのReadFileここで使用する必要がある理由は、それがfile_get_contents通りであり、出力バッファに直接ファイルを出力していることである

$remoteImage = "http://www.example.com/gifs/logo.gif"; 
$imginfo = getimagesize($remoteImage); 
header("Content-type: {$imginfo['mime']}"); 
readfile($remoteImage); 

55

あなたは、このようgetimagesizeから取得することができますreadfileと出力画像のヘッダーを使用することができますファイルをメモリに読み込みます。このファイルはこのコンテンツでは不要で、大容量のファイルには多大な負荷がかかります。

+6

このソリューションは、イメージヘッダーが動的に渡されるため、はるかに優れています。 PHPの私のバージョンでは、3行目(ヘッダー行)の構文が受け入れられませんでした。これはうまくいきました: header( "Content-type:"。$ imginfo ['mime']); – jsleuth

7

あなたはこのように行うことができます:答え@seengeeする

<?php 
    $file = 'your_images.jpg'; 

    header('Content-Type: image/jpeg'); 
    header('Content-Length: ' . filesize($file)); 
    echo file_get_contents($file); 
?> 
26
$image = 'http://images.itracki.com/2011/06/favicon.png'; 
// Read image path, convert to base64 encoding 
$imageData = base64_encode(file_get_contents($image)); 

// Format the image SRC: data:{mime};base64,{data}; 
$src = 'data: '.mime_content_type($image).';base64,'.$imageData; 

// Echo out a sample image 
echo '<img src="' . $src . '">'; 
+0

これは受け入れられる回答である必要があります – Kareem

+0

これは私のためにも機能します。 +1 – valkirilov

+0

これは動作しますが、10MBイメージでは少し遅いです。 –

0

小編集を: を動作させるためには、あなたはそう、あなたがエラーを取得します、変数の周りの中括弧を必要としています。

header("Content-type: {$imginfo['mime']}");

関連する問題