上传图片时本地先预览如何实现

这次给大家带来上传图片时本地预览如何实现,实现上传图片时本地先预览的注意事项有哪些,下面就是实战案例,一起来看一下。

FileReader 对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 File 或 Blob 对象指定要读取的文件或数据。下面通过本文给大家介绍JS中利用FileReader实现上传图片前本地预览功能,需要的朋友参考下

引子

      平时做图片上传预览时如果没有特殊的要求就直接先把图片传到后台去,成功之后拿到URL再渲染到页面上,这样做在图片比较小的时候没什么问题,大一点的话就会比较慢才能看到预览了,而且还产生了垃圾文件,所以比较好的是上传之前先在本地预览一下。

      之前做项找插件的时候就知道纯前端可以实现图片本地预览,可今天面试的时候被问到时竟然一脸懵逼,然后竟然无意中就在电脑桌面发现了实现的demo,然后根据demo查了一下API,稍微总结下:

首先得拿到File对象

      当用input标签上传图片时event对象中会包含file对象的一个集合

event.target.files

核心是FileReader对象

根据MDN上的说法:

FileReader 对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 File 或 Blob 对象指定要读取的文件或数据。

首先要作为构造函数得到一个FileReader的实例对象

var freader = new FileReader();

登录后复制

利用readAsDataURL()方法读取指定的内容

freader.readAsDataURL(file);

登录后复制

最后就是一个事件处理,相当于监控读取进度,我们这里是当读取完成时渲染图片,所以用onload

freader.onload = function(e) { console.log(e); myImg.setAttribute('src', e.target.result); }

登录后复制

这里架加载完成之后最终得到的是一个base64编码的src地址,具体为什么下次查清楚了再专门写篇关于base64编码的文章

完整代码

  Document     暂无图片    function changImg(e){  var myImg = document.getElementById('myImg'); for (var i = 0; i < e.target.files.length; i++) {  var file = e.target.files[i];  console.log(file);  if (!(/^image/.*$/i.test(file.type))) {   continue; //不是图片 就跳出这一次循环  }  //实例化FileReader API  var freader = new FileReader();  freader.readAsDataURL(file);  freader.onload = function(e) {   console.log(e);  myImg.setAttribute('src', e.target.result);  }  }  } 

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

设置cookie过期自动更新和自动获取

使用import 和require打包JS

select的option叠加怎样处理

以上就是上传图片时本地先预览如何实现的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2781555.html

(0)
上一篇 2025年3月8日 16:18:57
下一篇 2025年2月25日 21:08:59

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 在React组件中的this如何使用

    这次给大家带来在React组件中的this如何使用,在React组件中的this使用的注意事项有哪些,下面就是实战案例,一起来看一下。 React组件的this是什么 通过编写一个简单组件,并渲染出来,分别打印出自定义函数和render中的…

    2025年3月8日
    200
  • 使用vue.js路由后失效如何解决

    新学了vue.js中的路由 在之前写的vue的demo上加上了简单的路由例子(来自vue-router 2),但是加上点击后只有地址栏变化,内容并不变.且之前用jquery写的一些效果也失效了.最后找到原因是因为同一个id被启动了两次(第一…

    编程技术 2025年3月8日
    200
  • 前端项目中如何搭建JQuery、Vue等开发环境

    这次给大家带来前端项目中如何搭建JQuery、Vue等开发环境 ,前端项目搭建JQuery、Vue等开发环境的注意事项有哪些,下面就是实战案例,一起来看一下。   vscode是微软开发的的一款代码编辑器,就如官网上说的一样,vscode重…

    2025年3月8日 编程技术
    200
  • JS中DOM如何操作

    dom即 document object model 是 w3c (万维网联盟)的标准,dom定义访问 html 和 xml 的标准 : w3c文档对象模型(dom)是中立于平台和语言的接口, 它允许程序 和脚本 动态的访问和更新文档的内容…

    编程技术 2025年3月8日
    200
  • Node.js如何开发微信墙

    这次给大家带来Node.js如何开发微信墙,Node.js开发微信墙的注意事项有哪些,下面就是实战案例,一起来看一下。 验证服务器有效性 接收用户通过微信订阅号发给服务器的消息 解析收到的XML文本消息格式为JSON 用模板构造应答用户的X…

    编程技术 2025年3月8日
    200
  • js实现txt文件的上传并预览的代码

    本文主要和大家分享js实现txt文件的上传并预览的代码,因为是简单的txt文件,只涉及文本,如果需要涉及图片预览就需要使用papaparse和jschardet,此处不多叙述。  表单按钮使用js的onchange=”uploadfile(…

    2025年3月8日 编程技术
    200
  • JavaScript实现txt文件的上传并预览功能

    今天做项目刚好碰到这个记录一下。因为是简单的txt文件,只涉及文本,如果需要涉及图片预览就需要使用papaparse和jschardet,此处不多叙述。  表单按钮使用js的onchange=”uploadfile()” 事件,functi…

    2025年3月8日
    200
  • vue打包后字体和图片资源失效如何处理

    这次给大家带来vue打包后字体和图片资源失效如何处理,处理vue打包后字体和图片资源失效的注意事项有哪些,下面就是实战案例,一起来看一下。 1. vue打包后font-awesome字体失效 解决方案: 2. 打包后图片资源失效 解决方案:…

    2025年3月8日
    200
  • vue项目中背景图片报错如何处理

    这次给大家带来vue项目中背景图片报错如何处理,处理vue项目中背景图片报错的注意事项有哪些,下面就是实战案例,一起来看一下。 解决方法: 在utils.js里边的 加上publicPath:’../../’, 在引…

    2025年3月8日
    200
  • Vue-cli项目如何获取本地的json文件

    这次给大家带来Vue-cli项目如何获取本地的json文件,Vue-cli项目获取本地的json文件的注意事项有哪些,下面就是实战案例,一起来看一下。 在自己做的vue demo项目中,我想通过在本地添加一些json数据,写到json文件中…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论