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)这种方法是把拿到图片的物理地址然后再展示。

  • 相关阅读:
    ruby
    Ajax的基本请求/响应模型
    面向GC的Java编程(转)
    linux中fork()函数详解(转)
    详细解析Java中抽象类和接口的区别(转)
    MQ队列堆积太长,消费不过来怎么办(转)
    消息队列软件产品大比拼(转)
    mac地址和ip地址要同时存在么?
    DP刷题记录(持续更新)
    ZR979B. 【十联测 Day 9】唯一睿酱
  • 原文地址:https://www.cnblogs.com/xinsir/p/10243055.html
Copyright © 2011-2022 走看看