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创建平滑的页面滚动(顶部或底部)
Feb 26 Javascript
IE下写xml文件的两种方式(fso/saveAs)
Aug 05 Javascript
JQuery记住用户名和密码的具体实现
Apr 04 Javascript
js 判断图片是否加载完以及实现图片的预下载
Aug 14 Javascript
Extjs4.0 ComboBox如何实现三级联动
May 11 Javascript
Jquery uploadify 多余的Get请求(404错误)的解决方法
Jan 26 Javascript
ReactNative踩坑之配置调试端口的解决方法
Jul 28 Javascript
JS实现websocket长轮询实时消息提示的效果
Oct 10 Javascript
如何去除富文本中的html标签及vue、react、微信小程序中的过滤器
Nov 21 Javascript
JS实现可切换图片的幻灯切换效果示例
May 24 Javascript
vue-cli4项目开启eslint保存时自动格式问题
Jul 13 Javascript
Vue移动端项目实现使用手机预览调试操作
Jul 18 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
使用无限生命期Session的方法
2006/10/09 PHP
深思 PHP 数组遍历的差异(array_diff 的实现)
2008/03/23 PHP
php中删除字符串中最先出现某个字符的实现代码
2013/02/03 PHP
PHP中把stdClass Object转array的几个方法
2014/05/08 PHP
php实现文件下载代码分享
2014/08/19 PHP
WordPress中is_singular()函数简介
2015/02/05 PHP
PHP精确计算功能示例
2016/11/29 PHP
php字符串函数 str类常见用法示例
2020/05/15 PHP
使一个函数作为另外一个函数的参数来运行的javascript代码
2007/08/13 Javascript
Javascript 中的 call 和 apply使用介绍
2012/02/22 Javascript
jquery内置验证(validate)使用方法示例(表单验证)
2013/12/04 Javascript
js输入框邮箱自动提示功能代码实现
2013/12/10 Javascript
jQuery实现当按下回车键时绑定点击事件
2014/01/28 Javascript
Google Maps API地图应用示例分享
2014/10/23 Javascript
基于jquery固定于顶部的导航响应浏览器滚动条事件
2014/11/02 Javascript
jQuery修改class属性和CSS样式整理
2015/01/30 Javascript
jQuery实现在新增加的元素上添加事件方法案例分析
2017/02/09 Javascript
nodejs log4js 使用详解
2019/05/31 NodeJs
python处理csv数据动态显示曲线实例代码
2018/01/23 Python
Python中的random.uniform()函数教程与实例解析
2019/03/02 Python
python标记语句块使用方法总结
2019/08/05 Python
Python range与enumerate函数区别解析
2020/02/28 Python
CSS3动画:5种预载动画效果实例
2017/04/05 HTML / CSS
德国汉莎航空中国官网: Lufthansa中国
2017/03/30 全球购物
纽约香氛品牌:NEST Fragrance
2018/10/15 全球购物
荷兰最大的儿童服装店:The Kids Republic
2019/04/13 全球购物
俄罗斯皮肤健康中心:Pharmacosmetica.ru
2020/02/22 全球购物
网络通讯中,端口有什么含义,端口的取值范围
2012/11/23 面试题
EJB与JAVA BEAN的区别
2016/08/29 面试题
任课老师推荐信范文
2013/11/24 职场文书
2014年行政工作总结
2014/11/19 职场文书
2015年秋季开学典礼校长致辞
2015/07/16 职场文书
2016年记者节感言
2015/12/08 职场文书
MySQL8.0升级的踩坑历险记
2021/11/01 MySQL
直播实况, OMG破敌三路五十分钟大战神技局摩托车
2022/04/01 DOTA
SpringBoot详解自定义Stater的应用
2022/07/15 Java/Android