博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前端图片预览方式
阅读量:6483 次
发布时间:2019-06-23

本文共 1856 字,大约阅读时间需要 6 分钟。

图片预览方法

图片预览现在大多数基于HTML5提供的接口FileReader,而FileReader给我们提供了四个方法

1.readAsArrayBuffer: result属性中二进制数据缓冲区
2.readAsBinaryString: result属性中包含文件原始二进制数据
3.readAsDataURL: result属性中将包含一个data: URL格式的字符串以表示所读取文件的内容.
4.readAsText: result属性中将包含一个字符串以表示所读取的文件内容.

一:其中要实现图片预览需要用readAsDataURL这个方法会将图片转换成base64的模式。之后我们把base64的字符串赋值给img的src属性,就可以实现图片预览代码如下

//html 
//js var input = document.querySelector('#file_input');    input.onchange = function(){        readfile(input.files[0], (e)=>{           var src = e.target.result;           var img = new Image();                img.src = src;                document.body.appendChild(img);            })         }         //将图片转换成base64形式         function readfile(blob, callback){            var reader = new FileReader();            reader.onload = callback;            reader.readAsDataURL(blob);         }

二: 我么还可以使用对象URL中的方法createObjectURL()来实现图片预览,代码如下

var input = document.querySelector('#file_input');    input.onchange = function(){        var img = new Image();        img.src = window.URL.createObjectURL(input.files[0]);        document.body.appendChild(img);    }

三: 我们还可以通过拖拽的方式来实现图片预览,代码如下

//必须要禁止浏览器默认行为      drop.ondragenter = function(e){          e.preventDefault();      }      drop.ondragover = function(e){          e.preventDefault();      }      drop.onleave = function(e){          e.preventDefault();      }      drop.ondrop = function(e){          e.preventDefault();          //获取文件对象数组          var fs = e.dataTransfer.files;          var reader = new FileReader();          reader.onload = function(e){              var img = new Image();              img.src = e.target.result;              //图片宽度和高度设置成拖拽狂框一样              img.width = drop.clientWidth;              img.height = drop.clientHeight;              drop.appendChild(img);          }          reader.readAsDataURL(fs[0]);     }

转载地址:http://zdbuo.baihongyu.com/

你可能感兴趣的文章
【故障处理】ORA-12545: Connect failed because target host or object does not exist
查看>>
js判断移动端是否安装某款app的多种方法
查看>>
学习angularjs的内置API函数
查看>>
4、输出名称 Exported names
查看>>
Pre-echo(预回声),瞬态信号检测与TNS
查看>>
【转载】如何发送和接收 Windows Phone 的 Raw 通知
查看>>
poj2378
查看>>
Java文件清单列表
查看>>
js url传值中文乱码之解决之道
查看>>
Trusty TEE
查看>>
[LeetCode] Reverse String 翻转字符串
查看>>
学习iOS【3】数组、词典和集合
查看>>
Hessian 原理分析--转
查看>>
转: 基于netty+ protobuf +spring + hibernate + jgroups开发的游戏服务端
查看>>
easyui传入map的数据前台展示出tree格式数据
查看>>
悲观的思考,乐观的生活.我们既需要思考的深度,也需要生活的温度!
查看>>
java.math.BigDecimal
查看>>
Vitamio中文API文档(4)—— VitamioInstaller
查看>>
yii框架常用url地址
查看>>
python3.4学习笔记(十六) windows下面安装easy_install和pip教程
查看>>