반응형

Javascript를 이용한 업로드 이미지를 미리보기 하는 예제를 구현해 보겠습니다.

 

보통 업로드와 동시에 서버에 저장된 파일의 URL을 매핑하는 구조가 아닌

업로드를 하기전에 이미지를 미리 볼 수 있는 구조여서

 

보다 심플하게 사용할 수 있습니다.

 

예제 소스

<html>
<head>
<script type="text/javascript">
	var uploadImg = (function loadImageFile() {
		if (window.FileReader) {
			var ImgPreView;
			var ImageReader = new window.FileReader();
			var ableType = /^(?:image\/jpeg|image\/png|image\/bmp|image\/gif)$/i;
			
			ImageReader.onload = function(Event) {
				if (!ImgPreView) {
					var newPreview = document.getElementById("imgPre");
					ImgPreView = new Image();
					ImgPreView.style.width = "150px";
					ImgPreView.style.height = "150px";
					newPreview.appendChild(ImgPreView);
				}
				ImgPreView.src = Event.target.result;
			};
			
			return function() {
				var img = document.getElementById("img_area").files;
				if (!ableType.test(img[0].type)) {
					alert("이미지 파일만 가능합니다.");
					return;
				}
				ImageReader.readAsDataURL(img[0]);
			}
		}
		document.getElementById("imgPre").src = document.getElementById("image").value;
	})();
</script>
</head>
<body>
	<input id="img_area" type="file" onchange="uploadImg();"><br>
	미리보기
	<div id="imgPre"></div>
</body>
</html>

 

실행 결과

위와 같이 이미지를 업로드 하면

미리보기를 통해 등록하려는 이미지를 확인할 수 있습니다.

 

위의 소스 중 ableType이라는 변수는 

업로드 이미지의 확장자를 체크할 수 있는데요.

 

지정된 확장자가 아닌 이미지를 업로드할 경우는

위와 같이 에러 메시지가 나타나게 됩니다.

반응형

+ Recent posts