vue预览本地图片

简介: vue预览本地图片
<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>
相关文章
|
20小时前
|
JavaScript 前端开发 测试技术
使用 Vue CLI 脚手架生成 Vue 项目
通过 Vue CLI 创建 Vue 项目可以极大地提高开发效率。它不仅提供了一整套标准化的项目结构,还集成了常用的开发工具和配置,使得开发者可以专注于业务逻辑的实现,而不需要花费大量时间在项目配置上。
53 7
使用 Vue CLI 脚手架生成 Vue 项目
|
2天前
|
JavaScript 算法
“Error: error:0308010C:digital envelope routines::unsupported”启动vue项目遇到一个错误【已解决
“Error: error:0308010C:digital envelope routines::unsupported”启动vue项目遇到一个错误【已解决
8 1
|
2天前
|
JavaScript
error Component name “Login“ should always be multi-word vue/multi-word-component-names【已解决】
error Component name “Login“ should always be multi-word vue/multi-word-component-names【已解决】
6 1
|
2天前
|
JavaScript
vue知识点
vue知识点
10 3
|
3天前
|
JavaScript 前端开发 Java
【vue实战项目】通用管理系统:作业列表
【vue实战项目】通用管理系统:作业列表
16 0
|
3天前
|
JavaScript API
【vue实战项目】通用管理系统:信息列表,信息的编辑和删除
【vue实战项目】通用管理系统:信息列表,信息的编辑和删除
20 2
|
3天前
|
JavaScript API
【vue实战项目】通用管理系统:信息列表,信息录入
【vue实战项目】通用管理系统:信息列表,信息录入
11 3
|
3天前
|
JavaScript 前端开发 API
【vue实战项目】通用管理系统:学生列表
【vue实战项目】通用管理系统:学生列表
16 2
|
3天前
|
缓存 JavaScript
【vue实战项目】通用管理系统:首页
【vue实战项目】通用管理系统:首页
11 2
|
3天前
|
JavaScript 前端开发 数据安全/隐私保护
【vue实战项目】通用管理系统:登录页
【vue实战项目】通用管理系统:登录页
11 2