vue预览本地图片

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<template>
  <div>
    <a href="javascript:void(0);" @change="addImage" class="a">
      <input type="file" class="fileopen" />上传图片
    </a>
    <img :src="imgsrc" alt class="imgview" accept="image/png, image/jpeg, image/gif, image/jpg" />
  </div>
</template>
 
<script>
export default {
  data() {
    return {
      imgsrc: ""
    };
  },
  methods: {
    addImage() {
      var input = document.querySelector("input");
      //1. 拿到fileinput里面的文件, 这个file是一个file对象, file对象不能直接展示的
      var file = input.files[0];
 
      //2. 读取文件,成功img标签可以直接使用的格式
      //FileReader类就是专门用来读文件的
      var reader = new FileReader();
      window.console.log(file);
 
      //3. 开始读文件
      //readAsDataURL: dataurl它的本质就是图片的二进制数据, 进行base64加密后形成的一个字符串, 这个字符串可以直接作用img标签的图片资源使用
 
      reader.readAsDataURL(file);
      let _this = this;
      //4. 因为文件读取是一个耗时操作, 所以它在回调函数中,才能够拿到读取的结果
      reader.onload = function() {
        window.console.log(reader.result);
        //直接使用读取的结果
        _this.imgsrc = reader.result;
      };
      _this.imgsrc = file;
    }
  }
};
</script>
 
<style lang="less" scoped>
.imgview {
  width: 150px;
  height: 150px;
  border-radius: 50%;
  border: 1px solid red;
}
.a {
  position: relative;
  display: block;
  text-decoration: none;
  color: aqua;
}
.fileopen {
  position: absolute;
  left: 0;
  top: 0;
  opacity: 0;
  filter: alpha(opacity=0);
  width: 64px;
  overflow: hidden;
}
</style>

  

 

posted @   南风晚来晚相识  阅读(2427)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示