맛집 여행 캠핑 일상 생활

JAVASCRIPT + PHP 새창에 이미지 주소 노출 없이 뿌리기 본문

JAVASCRIPT

JAVASCRIPT + PHP 새창에 이미지 주소 노출 없이 뿌리기

영은파더♥ 2016. 9. 1. 14:08
728x90

JAVASCRIPT + PHP 새창에 이미지 주소 노출 없이 뿌리기


이미지의 경로 노출을 꺼릴 경우에 사용하면 된다.

이미지주소를 감추는 대신에 PHP 소스 주소는 노출된다는 것을 알아야 한다.


image header 출력방법과 img 태그에 data:image/jpeg;base64 방법에 대해서 알아보자.


JAVASCRIPT 소스

function action_imageView(url) {

var imageViewWindow = window.open("", "_image_view_", "width=300, height=300");

var htmlStr = "<form name='imageViewForm' action='image_view.php' method='post'>";

htmlStr += "<input type='hidden' name='url' value='"+url+"'>";

htmlStr += "</form>";

imageViewWindow.document.write(htmlStr);

imageViewWindow.document.imageViewForm.submit();

}


PHP 소스

<?

if($_POST['url'] && file_exists($_POST['url'])) {

$IMAGE_PATH = $_POST['url'];

$IMAGE_TYPE = strtolower(substr($IMAGE_PATH, strlen($IMAGE_PATH)-3, 3));

$createImageFunc = array(

"bmp"=>"imagecreatefromwbmp",

"gif"=>"imagecreatefromgif",

"jpg"=>"imagecreatefromjpeg",

"png"=>"imagecreatefrompng"

);

$ContentTypes = array(

"bmp"=>"Content-type:image/vnd.wap.wbmp",

"gif"=>"Content-type:image/gif",

"jpg"=>"Content-type:image/jpeg",

"png"=>"Content-type:image/png"

);

$ContentFuncs = array(

"bmp"=>"imagewbmp",

"gif"=>"imagegif",

"jpg"=>"imagejpeg",

"png"=>"imagepng"

);

if($createImageFunc[$IMAGE_TYPE]) $image = $createImageFunc[$IMAGE_TYPE]($IMAGE_PATH);

if($image) {

header($ContentTypes[$IMAGE_TYPE]);

$ContentFuncs[$IMAGE_TYPE]($image);

imagedestroy($image);

}

}

?>

IF 조건문 없이 하려다보니 함수포인터를 사용하게 되었다.


PHP 소스 ( 다른 방법 )

<?

if($_POST['url'] && file_exists($_POST['url'])) {

$IMAGE_PATH = $_POST['url'];

list($IMAGE_W, $IMAGE_H, $IMAGE_TYPE) = getimagesize($IMAGE_PATH);

switch ($IMAGE_TYPE) {

case 1: $image = imagecreatefromgif($IMAGE_PATH); break;

case 2: $image = imagecreatefromjpeg($IMAGE_PATH);  break;

case 3: $image = imagecreatefrompng($IMAGE_PATH); break;

case 15: $image = imagecreatefromwbmp($IMAGE_PATH); break;

default: return '';

}

ob_start();

imagejpeg( $image, NULL, 100 );

imagedestroy( $image );

$iraw = ob_get_clean();

echo "<img src='data:image/jpeg;base64,".base64_encode($iraw)."'>";

}

?>

이번에는 img 태그에 data:image/jpeg;base64 로 표현하는 방법이다.


또다른 방법 보기 http://itrooms.tistory.com/356



728x90
반응형
Trackback : | Comments :