前端实现文件的上传,就必须用到input标签,type属性为file
  在vue项目中通ref操作dom。input有一个属性accept,是必须要搭配type=file使用。
  multiple可以上传多张,accept限制上传文件的类型,属性值有
  • audio(音频)
  • video(视频)
  • image(图片)
  • MIME_type(一个有效的 MIME 类型,不带参数。请参阅 IANA MIME 类型,获得标准 MIME 类型的完整列表。image/*表示接受所有类型的图片,音频,视频相同。
 <input type="file" accept="image/*" ref="file" @change="upload"  multiple/>

  监听inputonchange事件,在change事件里操作DOM,拿到上传的文件信息。上传的文件信息都会保存在files以数组元素的形式保存。

 this.$refs.file.files[0]

  通过new fileReader对象将图片转换为base64的数据,FileReader 对象允许Web应用程序异步读取存储在用户计算机上的文件的内容,

 let data = this.$refs.file.files[0];
let imgFile = new FileReader();
imgFile.readAsDataURL(data);
imgFile.onload = res => {
console.log(res);
this.src=res.target.result
};

  

  readAsDataURL,读取指定的文件内容,一旦完成,就可以在onload事件拿到base64数据。
  onload事件有一个参数,这个参数包含了读取完成之后的文件信息,其中,res.target.result就是转换之后的base64图片数据。将base64数据赋值给src即可预览图片。

  

前端实现图片上传预览并转换base64的更多相关文章

  1. js实现图片上传预览功能,使用base64编码来实现

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  2. [前端 4] 使用Js实现图片上传预览

    导读:今天做图片上传预览,刚开始的做法是,先将图片上传到Nginx,然后重新加载页面才能看到这个图片.在这个过程中,用户一直都看不到自己上传的文件是什么样子.Ps:我发现我真的有强迫症了,都告诉我说不 ...

  3. js前端实现多图图片上传预览

    <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="C ...

  4. 兼容好的JS图片上传预览代码

    转 : http://www.codefans.net/articles/1395.shtml 兼容好的JS图片上传预览代码 (谷歌,IE11) <html xmlns="http:/ ...

  5. Jquery图片上传预览效果

    uploadPreview.js jQuery.fn.extend({ uploadPreview: function (opts) { var _self = this, _this = $(thi ...

  6. Javascript之图片上传预览

    使用Javascript之图片上传预览,我们无需上传到服务器中,兼容所有浏览器. 关键方法是使用微软库filter:progid:DXImageTransform.Microsoft.AlphaIma ...

  7. HTML5 图片上传预览

    <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8& ...

  8. ASP.NET工作笔记之一:图片上传预览及无刷新上传

    转自:http://www.cnblogs.com/sibiyellow/archive/2012/04/27/jqueryformjs.html 最近项目里面涉及到无刷新上传图片的功能,其实也就是上 ...

  9. php 图片上传预览(转)

    网上找的图片上传预览: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...

随机推荐

  1. Java NIO的理解和应用

    Java NIO是一种基于通道和缓冲区的I/O方式,已经被广泛的应用,成为解决高并发与大量连接和I/O处理问题的有效方式. Java NIO相关组件 Java NIO主要有三个核心部分组成,分别是:C ...

  2. LRU cache缓存简单实现

    LRU cache LRU(最近最少使用)是一种常用的缓存淘汰机制.当缓存大小容量到达最大分配容量的时候,就会将缓存中最近访问最少的对象删除掉,以腾出空间给新来的数据. 实现 (1)单线程简单版本 ( ...

  3. gc 模块常用函数

    """ 1.gc.set_debug(flags) 设置gc的debug日志,一般设置为gc.DEBUG_LEAK 2.gc.collect([generation]) ...

  4. Tkinter常用简单操作

        截图来自北京尚学堂 手册:http://effbot.org/tkinterbook/ 2020-04-20

  5. 使用Esxi虚拟化部署OpenWrt/HomeLede+扩容硬盘 保姆级教程

    本文介绍使用VMware虚拟化平台部署OpenWrt/HomeLede,并扩容固件硬盘的方法. 推荐使用虚拟化方式部署软路由,理由如下: 部署.升级.回退.扩容等操作非常方便,特别适合折腾 可以方便的 ...

  6. PHP array_values() 函数

    实例 返回数组中所有的值(不保留键名): <?php$a=array("Name"=>"Peter","Age"=>&qu ...

  7. DB_LINK删除

    由于业务需求,对测试库数据进行模糊化.为保生产数据安全,先删db_link; 1.共有db_link删除: select 'drop public database link '||db_link|| ...

  8. OJ评测状态

    Pending/Waiting 排队等待中 Pending Rejudge 答案重判中 Compiling 正在编译 Running/Judging 运行判断中 Accepted(AC) 程序通过 C ...

  9. .Net Core 3.0依赖注入替换 Autofac

    今天早上,喜庆的更新VS2019,终于3.0正式版了呀~ 有小伙伴问了一句Autofac怎么接入,因为Startup.ConfigureServices不能再把返回值改成IServiceProvide ...

  10. 实验09——java基于TCP实现客户端与服务端通信

    TCP通信         需要先创建连接 - 并且在创建连接的过程中 需要经过三次握手        底层通过 流 发送数据 数据没有大小限制        可靠的传输机制 - 丢包重发 包的顺序的 ...