2010-11-26 7 views

답변

27

헤더를 수정하고 에코를 적용해야합니까?

.

header("content-type: image/your_image_type");와 그 이후의 데이터를 보냅니다.

+0

괜찮아, 및 헤더 ("콘텐츠 유형 : 이미지/JPG"); 으로 충분해야합니까? –

+0

JPG 이미지 인 경우 @Belgin, 예. –

+3

이미지/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']}");

관련 문제