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调用asp.net 页面后台的实现代码
Apr 27 Javascript
jQuery 常见操作实现方式和常用函数方法总结
May 06 Javascript
jQuery.Validate验证库的使用介绍
Apr 26 Javascript
JQuery设置时间段下拉选择实例
Dec 30 Javascript
javascript 对象数组根据对象object key的值排序
Mar 09 Javascript
JQ实现新浪游戏首页幻灯片
Jul 29 Javascript
JavaScript实现的select点菜功能示例
Jan 16 Javascript
JS常用正则表达式总结【经典】
May 12 Javascript
JS实现根据详细地址获取经纬度功能示例
Apr 16 Javascript
微信小程序Page中data数据操作和函数调用方法
May 08 Javascript
JavaScript中MutationObServer监听DOM元素详情
Nov 27 Javascript
vue elementUI批量上传文件
Apr 26 Vue.js
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&amp;mysql(一)
2006/10/09 PHP
PHP获取类中常量,属性,及方法列表的方法
2009/04/09 PHP
jquery拖动插件(jquery.drag)使用介绍
2013/06/18 Javascript
JavaScript prototype 使用介绍
2013/08/29 Javascript
JavaScript中使用arguments获得函数传参个数实例
2014/08/27 Javascript
jQuery如何获取同一个类标签的所有值(默认无法获取)
2014/09/25 Javascript
jquery+easeing实现仿flash的载入动画
2015/03/10 Javascript
jQuery使用after()方法在元素后面添加多项内容的方法
2015/03/26 Javascript
JavaScript DOM元素尺寸和位置
2015/04/13 Javascript
Javascript中For In语句用法实例
2015/05/14 Javascript
JavaScript中getUTCMinutes()方法的使用详解
2015/06/10 Javascript
JavaScript调用传递变量参数的相关问题及解决办法
2015/11/01 Javascript
XML、HTML、CSS与JS的区别整理
2016/02/18 Javascript
论JavaScript模块化编程
2016/03/07 Javascript
javascript 实现动态侧边栏实例详解
2016/11/11 Javascript
微信小程序scroll-x失效的完美解决方法
2018/07/18 Javascript
JS实现滚动条触底加载更多
2019/09/19 Javascript
基于纯JS实现多张图片的懒加载Lazy过程解析
2019/10/14 Javascript
简明 Python 基础学习教程
2007/02/08 Python
在Python中操作文件之seek()方法的使用教程
2015/05/24 Python
Python中执行存储过程及获取存储过程返回值的方法
2017/10/07 Python
python中字符串比较使用is、==和cmp()总结
2018/03/18 Python
Linux下Python安装完成后使用pip命令的详细教程
2018/11/22 Python
Pandas缺失值2种处理方式代码实例
2020/06/13 Python
详解KMP算法以及python如何实现
2020/09/18 Python
Python本地及虚拟解释器配置过程解析
2020/10/13 Python
瑞贝卡·泰勒官方网站:Rebecca Taylor
2016/09/24 全球购物
Sandro Paris美国官网:典雅别致的法国时尚服饰品牌
2017/12/26 全球购物
潘多拉珠宝美国官方网站:Pandora US
2020/06/18 全球购物
教师四风对照检查材料思想汇报
2014/09/17 职场文书
保研专家推荐信范文
2015/03/25 职场文书
会议主持词开场白
2015/05/28 职场文书
谁动了我的奶酪读书笔记
2015/06/30 职场文书
Python的代理类实现,控制访问和修改属性的权限你都了解吗
2022/03/21 Python
Spring Boot项目传参校验的最佳实践指南
2022/04/05 Java/Android
我的收音机情缘
2022/04/05 无线电