JS实现图片预览的两种方式


Posted in Javascript onJune 27, 2017

考虑到用户体验, 网页的图片上传数据库前,先预览是很有必要的一个步骤,第一可以给用户带来安全感,第二防止图片文件有问题而提交到数据库,占用存储资源。

那么要实现预览有两种方式:一种是用window.URL.createObjectURl方法对选择的图片数据(可以勉强理解为input的value)生成一个blob对象路径,第二种是用获取 FileReader读取器。

那么无论那种方法,首先都得得到文件数据,获得文件数据是从files集合中获取。

方式一:

代码如下:

<input type=file id="inp">
<script>
 inp.onchange=function(){
 var file=this.files[0] // 获取input上传的图片数据;
 var img=new Image() ;
 url=window.URL.createObjectURL(file) // 得到bolb对象路径,可当成普通的文件路径一样使用,赋值给src;
 img.src=url;
 //其实也可一句代码搞定,不需要声明那么多变量;img.scr=window.URL.cteateObejectURL(this.files[0]) ;
 然后把img添加到页面就实现预览了
 }
<script>

方式二:

用FileRader对像读取文件.可分为四步;1、创建FileReader对像;2、调用readAsDataURL方法读取文件;3、调用onload事件监听,我们一需要拿到完整的数据,但我们又不知道文件何时读完?,所以需要第三步监听;4、通过FileRader对像r的result属性拿到读取结果。

代码如下:

<input type=file id="inp">
<input type=file id="inp">
<script>
inp.onchange=function(){
 var read=new FileReader() // 创建FileReader对像;
 read.readAsDataURL(this.files[0]) // 调用readAsDataURL方法读取文件;
  read.onload=function(){
   url=read.result // 拿到读取结果;
   var img=new Image();
   img.src=url;
   div.appendChild(img);
 }
 }

以上所述是小编给大家介绍的JS实现图片预览的几种方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery动态地获取系统时间实现代码
May 24 Javascript
js模拟点击以提交表单为例兼容主流浏览器
Nov 29 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
Jan 14 Javascript
用jquery写的菜单从左往右滑动出现
Apr 11 Javascript
a标签click和href执行顺序探讨
Jun 23 Javascript
node.js实现博客小爬虫的实例代码
Oct 08 Javascript
详解Vue.js 2.0 如何使用axios
Apr 21 Javascript
基于JSONP原理解析(推荐)
Dec 04 Javascript
vue 微信授权登录解决方案
Apr 10 Javascript
获取layer.open弹出层的返回值方法
Aug 20 Javascript
jQuery动态操作表单示例【基于table表格】
Dec 06 jQuery
Vue CLI2升级至Vue CLI3的方法步骤
May 20 Javascript
JavaScript转换数据库DateTime字段类型方法
Jun 27 #Javascript
JavaScript标准对象_动力节点Java学院整理
Jun 27 #Javascript
JavaScript闭包_动力节点Java学院整理
Jun 27 #Javascript
JavaScript创建对象_动力节点Java学院整理
Jun 27 #Javascript
JavaScript字符串_动力节点Java学院整理
Jun 27 #Javascript
JavaScript变量作用域_动力节点Java学院整理
Jun 27 #Javascript
详解微信小程序 登录获取unionid
Jun 27 #Javascript
You might like
用PHP连mysql和oracle数据库性能比较
2006/10/09 PHP
PHP 和 MySQL 基础教程(二)
2006/10/09 PHP
BBS(php &amp; mysql)完整版(七)
2006/10/09 PHP
用php实现的下载css文件中的图片的代码
2010/02/08 PHP
如何用php获取程序执行的时间
2013/06/09 PHP
php strrpos()与strripos()函数
2013/08/31 PHP
Zend studio文件注释模板设置方法
2013/09/29 PHP
php中动态调用函数的方法
2015/03/16 PHP
php使用Jpgraph绘制饼状图的方法
2015/06/10 PHP
关于在IE下的一个安全BUG --可用于跟踪用户的系统鼠标位置
2013/04/17 Javascript
require.js深入了解 require.js特性介绍
2014/09/04 Javascript
js实现类似新浪微博首页内容渐显效果的方法
2015/04/10 Javascript
jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)
2016/02/25 Javascript
javascript设计模式之策略模式学习笔记
2017/02/15 Javascript
基于JSONP原理解析(推荐)
2017/12/04 Javascript
关于vue面试题汇总
2018/03/20 Javascript
JS实现显示当前日期的实例代码
2018/07/03 Javascript
基于JS实现视频上传显示进度条
2020/05/12 Javascript
js仿京东放大镜效果
2020/08/09 Javascript
如何在面试中手写出javascript节流和防抖函数
2020/10/22 Javascript
[01:18]DOTA2超级联赛专访hanci ForLove淘汰感言曝光
2013/06/04 DOTA
[06:06]2018DOTA2亚洲邀请赛主赛事第四日战况回顾 全明星赛欢乐上演
2018/04/07 DOTA
python中list循环语句用法实例
2014/11/10 Python
使用相同的Apache实例来运行Django和Media文件
2015/07/22 Python
python制作小说爬虫实录
2017/08/14 Python
浅谈python3中input输入的使用
2019/08/02 Python
python中with语句结合上下文管理器操作详解
2019/12/19 Python
python入门之基础语法学习笔记
2020/02/08 Python
工作的心得体会
2013/12/31 职场文书
英文求职信范文
2014/05/23 职场文书
银行求职自荐书
2014/06/25 职场文书
小学假期安全广播稿
2014/09/28 职场文书
县委务虚会发言材料
2014/10/20 职场文书
三峡人家导游词
2015/01/31 职场文书
CAD实训总结范文
2015/08/03 职场文书
html5 录制mp3音频支持采样率和比特率设置
2021/07/15 Javascript