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 20 Javascript
js浏览器本地存储store.js介绍及应用
May 13 Javascript
jquery 3D 标签云示例代码
Jun 12 Javascript
js自定义鼠标右键的实现原理及源码
Jun 23 Javascript
node.js中的fs.closeSync方法使用说明
Dec 17 Javascript
js插件Jcrop自定义截取图片功能
Oct 14 Javascript
JavaScript实现form表单的多文件上传
Mar 27 Javascript
vscode下vue项目中eslint的使用方法
Jan 13 Javascript
9102了,你还不会移动端真机调试吗
Mar 25 Javascript
tsconfig.json配置详解
May 17 Javascript
解决vuex数据页面刷新后初始化操作
Jul 26 Javascript
javascript canvas实现雨滴效果
Jun 09 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中变量引用与变量销毁机制分析
2014/11/15 PHP
php生成唯一数字id的方法汇总
2015/11/18 PHP
PHP实现链表的定义与反转功能示例
2018/06/09 PHP
PHP实现的操作数组类库定义与用法示例
2019/05/24 PHP
javascript编程起步(第四课)
2007/02/27 Javascript
防止文件缓存的js代码
2013/01/10 Javascript
js控制滚动条缓慢滚动到顶部实现代码
2013/03/20 Javascript
js中的时间转换—毫秒转换成日期时间的示例代码
2014/01/26 Javascript
JS实现仿中关村论坛评分后弹出提示效果的方法
2015/02/23 Javascript
AngularGauge 属性解析详解
2016/09/06 Javascript
折叠菜单及选择器的运用
2017/02/03 Javascript
vue.js利用Object.defineProperty实现双向绑定
2017/03/09 Javascript
微信小程序遇到修改数据后页面不渲染的问题解决
2017/03/09 Javascript
前端框架学习总结之Angular、React与Vue的比较详解
2017/03/14 Javascript
vue router使用query和params传参的使用和区别
2017/11/13 Javascript
Vue调用后端java接口的实例代码
2019/10/28 Javascript
用Python编写一个每天都在系统下新建一个文件夹的脚本
2015/05/04 Python
Python读写/追加excel文件Demo分享
2018/05/03 Python
python变量赋值方法(可变与不可变)
2019/01/12 Python
Django框架模板的使用方法示例
2019/05/25 Python
Python实现微信翻译机器人的方法
2019/08/13 Python
使用Pandas的Series方法绘制图像教程
2019/12/04 Python
html5弹跳球示例代码
2013/07/23 HTML / CSS
HTML5中的Scoped属性使用实例
2014/04/23 HTML / CSS
澳大利亚相机之家:Camera House
2017/11/30 全球购物
德国最大的婴儿用品网上商店:Kidsroom.de(支持中文)
2020/09/02 全球购物
后勤岗位职责
2013/11/26 职场文书
基层干部十八大感言
2014/01/19 职场文书
孝敬父母的演讲稿
2014/05/14 职场文书
四风问题班子对照检查材料
2014/09/27 职场文书
2014年小学教研工作总结
2014/12/06 职场文书
2016公务员年度考核评语
2015/12/01 职场文书
python实现自动清理文件夹旧文件
2021/05/10 Python
golang特有程序结构入门教程
2021/06/02 Python
分析mysql中一条SQL查询语句是如何执行的
2021/06/21 MySQL
java如何实现获取客户端ip地址的示例代码
2022/04/07 Java/Android