일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 알리익스프레스
- iptime
- 소비전력
- centos
- proxmox
- 시놀로지
- mysql
- 윈도우10
- 아파치
- 가상서버호스팅
- SKT
- 램가스초월
- 알뜰폰
- OpenWrt
- 복현오거리
- PHP-FPM
- jQuery
- Apache
- Rocky
- php
- 티스토리
- 라즈베리파이2
- 킹북이초월
- 스톤에이지
- KB증권
- 리눅스
- 보르비스초월
- ConoHa
- KB국민카드
- 자바스크립트
- Today
- Total
맛집 여행 캠핑 일상 생활
JAVASCRIPT + PHP 새창에 이미지 주소 노출 없이 뿌리기 본문
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
'JAVASCRIPT' 카테고리의 다른 글
JAVASCRIPT Web Worker 를 이용한 Background 작업처리 (0) | 2016.09.21 |
---|---|
JAVASCRIPT SMS 문자열 바이트 계산 (0) | 2016.09.09 |
JAVASCRIPT 부모페이지의 QueryString 가져오는 방법 (0) | 2016.09.01 |
JAVASCRIPT 썸네일이미지 클릭시 새창에 이미지보기 (0) | 2016.08.31 |
JAVASCRIPT 루프문 종류 (0) | 2016.08.22 |