Home  >  Article  >  Web Front-end  >  FileReader in JS implements image upload preview

FileReader in JS implements image upload preview

php中世界最好的语言
php中世界最好的语言Original
2018-04-18 13:44:271856browse

This time I will bring you the preview of image upload using FileReader in JS. What are the precautions for implementing image upload preview using FileReader in JS? The following is a practical case, let’s take a look.

JavaScriptMany people are confused about using FileReader to achieve image upload preview effects. Most people don’t know how to use FileReader to achieve image upload preview effects. The following article will give you the details. Let’s take a look at the specific operation methods and code.

FileReader is part of the HTML5 File API. It implements an asynchronous file reading mechanism. You can think of FileReader as XMLHttpRequest, the only difference is that it reads the

file system instead of the remote server. In order to read the data in the file, FileReader provides the following methods.

  • readAsText(file,encoding): Read the file in plain text and save the read file to the result attribute.

  • readAsDataURL(file): Read the file and save the file in the result attribute in the form of data URI.
  • readAsBinaryString(file): Read the file and save a
  • string in the result attribute. Each character in the string represents one byte.

  • readAsArrayBuffer(file): Read the file and save an ArrayBuffer containing the
  • contents of the file in the result attribute.

    The multiple attribute indicates support for multiple images
  • <p id="wrapper">    
     <input id="fileUpload" type="file" multiple /><br />
     <p id="image-holder"> </p>
    </p>
    $("#fileUpload").on('change', function () {
     
      //获取上传文件的数量
      var countFiles = $(this)[0].files.length;
     
      var imgPath = $(this)[0].value;
      var extn = imgPath.substring(imgPath.lastIndexOf('.') + 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 supports Internet Explorer 10, FireFox, Chrome and Opera browsers.

I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the php Chinese website!

Recommended reading:

How to implement the decorator pattern in node.js


Detailed steps for using Django multiple databases


The above is the detailed content of FileReader in JS implements image upload preview. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn