>  기사  >  웹 프론트엔드  >  FileReader를 사용하여 이미지 업로드 및 미리보기를 완료하는 JavaScript 기능 소개

FileReader를 사용하여 이미지 업로드 및 미리보기를 완료하는 JavaScript 기능 소개

巴扎黑
巴扎黑원래의
2017-09-07 11:24:331706검색

이 글에서는 주로 JavaScript가 FileReader를 사용하여 이미지 업로드 미리보기 효과를 얻는 방법을 자세히 소개합니다. 관심 있는 친구가 참조할 수 있습니다.

FileReader는 HTML5 파일 API의 일부입니다. 비동기 파일 읽기 메커니즘을 구현합니다. FileReader는 원격 서버가 아닌 파일 시스템을 읽는다는 점을 제외하면 XMLHttpRequest로 생각할 수 있습니다. 파일의 데이터를 읽기 위해 FileReader는 다음과 같은 메소드를 제공합니다.

  • readAsText(file,encoding): 파일을 일반 텍스트로 읽고 읽은 파일을 result 속성에 저장합니다.

  • readAsDataURL(file): 파일을 읽고 결과 속성에 파일을 데이터 URI 형식으로 저장합니다.

  • readAsBinaryString(file): 파일을 읽고 결과 속성에 문자열을 저장합니다. 문자열의 각 문자는 1바이트를 나타냅니다.

  • readAsArrayBuffer(file): 파일을 읽고 결과 속성에 파일 내용이 포함된 ArrayBuffer를 저장합니다.

  • multiple 속성은 여러 이미지에 대한 지원을 나타냅니다.


<p id="wrapper">    
 <input id="fileUpload" type="file" multiple /><br />
 <p id="image-holder"> </p>
</p>


$("#fileUpload").on(&#39;change&#39;, function () {
 
  //获取上传文件的数量
  var countFiles = $(this)[0].files.length;
 
  var imgPath = $(this)[0].value;
  var extn = imgPath.substring(imgPath.lastIndexOf(&#39;.&#39;) + 1).toLowerCase();
  var image_holder = $("#image-holder");
  image_holder.empty();
 
  if (extn == "gif" || extn == "png" || extn == "jpg" || extn == "jpeg") {
    if (typeof (FileReader) != "undefined") {
 
      // 循环所有要上传的图片
      for (var i = 0; i < countFiles; i++) {
 
        var reader = new FileReader();
        reader.onload = function (e) {
          $("<img />", {
            "src": e.target.result,
              "class": "thumb-image"
          }).appendTo(image_holder);
        }
 
        image_holder.show();
        reader.readAsDataURL($(this)[0].files[i]);
      }
 
    } else {
      alert("你的浏览器不支持FileReader!");
    }
  } else {
    alert("请选择图像文件。");
  }
});

FileReader는 Internet Explorer 10 이상, FireFox, Chrome 및 Opera 브라우저를 지원할 수 있습니다.

위 내용은 FileReader를 사용하여 이미지 업로드 및 미리보기를 완료하는 JavaScript 기능 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.