2014-10-20 2 views
0

그래서이 사람이 ID를 매개 변수로 입력하여 서버에서 원시 이미지를 반환하는 웹 페이지가 있습니다. 당신이 바로 새 탭에서 이미지 열기를 클릭 한 경우에도URL에서 파일 이름이나 확장명없이 이미지를 반환하는 방법

http://photos.iitm.ac.in/byid.php?id=008576

는 만 PHP는 오픈됩니다. 그는 어떻게이 일을 처리했는지 아는 사람이 있습니까? 프로필 사진에 이러한 종류의 기능이 필요합니다.

+0

나는이 줄을 따라 뭔가를 생각한다. http://lorempixel.com/400/200/ – Sp0T

답변

0

매우 간단합니다. 올바른 Content-type으로 데이터를 보내면됩니다. 따라서 GIF 이미지를 표시하려면

Header("Content-Type: image/gif"); 

이미지 데이터를 보내야합니다.

0

당신은 다음과 같이 할 수 있습니다 : 데이터베이스에서 getImage.php 페이지되는 사용자 이미지 정보에, 그래서

http://www.example.com/getImage.php?id=20

및 이미지 소스 제공 :

한다고 가정 URL의 예입니다

코드는 다음과 같아야합니다.

$userImageName="testImage.gif";   //FROM DATABASE FOR id=20, Just for example 
    ob_clean();       //CLEAN THE OUTPUT BUFFER 
    header("Content-Type: image/gif");  //SET PAGE HEADER FOR IMAGE 
    echo file_get_contents('imageDirectory/'.$userImageName); 
    die; 
+1

'readfile()'사용을 고려해 보라. IIRC는 벤치 마크에서 ~ 20 % 빠릅니다. –

0

질문에 대한 직접적인 대답은 아니지만 이미 다른 사람들이 대답했기 때문에 언급할만한 가치가 있다고 생각합니다.

그림을 저장하려고 할 때 나타나는 파일 이름을 제어 할 수도 있습니다! 사용 다음 헤더, 그렇게하려면

header('Content-Disposition', 'inline;filename=my_image_title.jpg'); 

스크립트는 다음과 같습니다 있도록 :

header('Content-Disposition: inline;filename=my_image_title.jpg'); 
header('Content-Type: image/jpeg'); 
readfile($pathToImage); 
//or echo $imageContent 

그냥 당신이 header()에 첫 번째 통화를하기 전에 실수로 출력 아무것도하지 않았다 있는지 확인하십시오, 그렇지 않으면 당신을 "헤더가 이미 전송되었습니다"라는 오류가 발생할 수 있습니다.

관련 문제