HTML5/Local Img Preview

HTML5 Local Image Preview

Soul-Learner 2014. 8. 1. 09:40

로컬에서 이미지를 서버로 전송하기 전에 웹브라우저 화면에 미리 보여주는 예


원문참조 http://stackoverflow.com/questions/14069421/in-html5-how-to-show-preview-of-image-before-upload


<!DOCTYPE html>

<html>

<head>

<meta charset="EUC-KR">

<title>Local Image Preview before Upload</title>

<script type="text/javascript">


    function PreviewImage() {

        var oFReader = new FileReader();

        oFReader.readAsDataURL(document.getElementById("uploadImage").files[0]);


        oFReader.onload = function (oFREvent) {

            document.getElementById("uploadPreview").src = oFREvent.target.result;

        };

    };


</script>

</head>

<body>

<img id="uploadPreview" style="width: 100px; height: 100px;" />

<input id="uploadImage" type="file" name="myPhoto" onchange="PreviewImage();" />

</body>

</html>



<!doctype html>
<html>
<head>
  <title>이미지 선택 및 화면출력 예</title>
  <script type="text/javascript">
  
    function doClick() {
      var el = document.getElementById("fileElem");
      if (el) {
        el.click();
      }
    }
    
    function handleFiles(files) {
      var d = document.getElementById("fileList");
      if (!files.length) {
        d.innerHTML = "<p>선택된 파일 없음!</p>";
      } else {

        var img = document.createElement("img");
        img.src = window.URL.createObjectURL(files[0]);;
        //img.height = 100;
        img.onload = function() {
          window.URL.revokeObjectURL(this.src);
        }
        document.body.appendChild(img);
        
        var info = document.createElement("div");
        info.innerHTML = files[0].name + ": " + files[0].size + " bytes";
        document.body.appendChild(info);
      }
    }
  </script>
</head>
<body>
  <form>
    <input type="file" id="fileElem" multiple accept="image/*" style="display:none" onchange="handleFiles(this.files)">
  </form>
  <a href="javascript:doClick()">Select some files</a>
  <div id="fileList"></div>
</body>
</html>