zoukankan      html  css  js  c++  java
  • js如何展示上传的图片

    前言:本文章主要讲的是上传的图片如何展示在页面上。

          一般来说,我们会先将本地图片上传到服务器,上传成功后,由后台返回图片的网络地址再在前端显示。但是,我今天讲的是不通过前面说的过程,而是直接使用js将上传的图片展示。

          这种方法就是通过FileReaderreadAsDataURL方法,我们可以不经过后台,直接将本地图片显示在页面上。这样做可以减少前后端频繁的交互过程,减少服务器端无用的图片资源。让我们来看看代码:

      原生js代码将图片转换成base64(监听input的节点):

         

     var input = document.getElementById("file"); // 获取input节点
    
      input.onchange = function() {
        var file = this.files[0];
        if (!!file) {
          var reader = new FileReader(); // 图片文件转换为base64
          reader.readAsDataURL(file);//用文件加载器加载文件
          reader.onload = function() { // 显示图片
            document.getElementById("file_img").src = this.result;//file_img是图片展示载体
          }
        }
      }
      vue代码将图片转换成base64(在input使用@change绑定):
      
      
    const file = this.$refs.upload.files[0];
      const reader = new FileReader();
      let _this = this;
      reader.onload = function() {
        _this.fileArr.push(reader.result);//fileArr是存储图片转换为base64的地址,然后可以通过v-for展示
      };
      reader.readAsDataURL(file);//用文件加载器加载文件

      除了将图片转换成base64展示,还有另外一种方法:window.URL.createObjectURL(file)这种方法是把拿到图片的物理地址然后再展示。

  • 相关阅读:
    HDU 4539郑厂长系列故事――排兵布阵(状压DP)
    HDU 2196Computer(树形DP)
    HDU 4284Travel(状压DP)
    HDU 1520Anniversary party(树型DP)
    HDU 3920Clear All of Them I(状压DP)
    HDU 3853LOOPS(简单概率DP)
    UVA 11983 Weird Advertisement(线段树求矩形并的面积)
    POJ 2886Who Gets the Most Candies?(线段树)
    POJ 2828Buy Tickets
    HDU 1394Minimum Inversion Number(线段树)
  • 原文地址:https://www.cnblogs.com/xinsir/p/10243055.html
Copyright © 2011-2022 走看看