一分钟学会使用js读取上传图片文件

11 篇文章 0 订阅
10 篇文章 0 订阅

前言

显示一个图片,除了直接放文件路径,还可以放Base64

    当我们用file选择一个文件时,我们希望能够读取到文件路径,然后显示到一个img上

    或许你会想利用value值显示,input:file上确实有value但是这个value不能用

    fileReader,尽量先监听,然后再读取,好了不废话了直接看代码吧

效果图

 

js部分

   <script>
      let _input = document.querySelector('[type="file"]');
      let _imgList = document.querySelector(".img-list");
      let reader = new FileReader();
      // 读取完成后将图片插入
      reader.onload = function () {
        console.log("读取完成,结果为bease64格式", this.result);
        let img = new Image();
        img.src = this.result;
        _imgList.appendChild(img);
      };
      // 读取
      _input.onchange = function () {
        let _file = this.files[0]; //获取选中的文件
        if (
          _file.type === "image/png" ||
          _file.type === "image/jpeg" ||
          _file.type === "image/jpg"
        ) {
          reader.readAsDataURL(_file); //读取文件
        } else {
          alert("格式错误");
        }
      };
    </script>

html部分

    <div class="upload">
      <div class="img-list"></div>
      <div class="upload-btn">
        +
        <!-- accept 限制文件类型 -->
        <input type="file" accept=".png,.jpeg,.jpg" />
      </div>
    </div>

   css部分

     * {
        box-sizing: border-box;
      }

      .upload-btn {
        width: 100px;
        height: 100px;
        border: 2px solid #ccc;
        text-align: center;
        line-height: 88px;

        font-size: 70px;
        color: #ccc;
        position: relative;
      }

      .upload-btn [type="file"] {
        opacity: 0;
        position: absolute;
        left: 0;
        top: 0;
        bottom: 0;
        right: 0;
        width: 100%;
        height: 100%;
      }

      .upload {
        display: flex;
        align-items: center;
      }

      .img-list {
        height: 100px;
      }

      .img-list img {
        height: 100px;
        width: 100px;
      }

csdn文章推荐受影响解决办法10个字10行

csdn文章推荐受影响解决办法10个字10行

csdn文章推荐受影响解决办法10个字10行

csdn文章推荐受影响解决办法10个字10行

csdn文章推荐受影响解决办法10个字10行

csdn文章推荐受影响解决办法10个字10行

csdn文章推荐受影响解决办法10个字10行

csdn文章推荐受影响解决办法10个字10行

csdn文章推荐受影响解决办法10个字10行

csdn文章推荐受影响解决办法10个字10行

csdn文章推荐受影响解决办法10个字10行

csdn文章推荐受影响解决办法10个字10行

csdn文章推荐受影响解决办法10个字10行

csdn文章推荐受影响解决办法10个字10行

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

object not found

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值