基于JavaScript实现本地图片预览


Posted in Javascript onFebruary 08, 2017

本文实例为大家分享了js本地图片预览的具体代码,供大家参考,具体内容如下

<!DOCTYPE html>
<!--
<!DOCTYPE html>一定要放在第一行,除非上面都是空行

在HTML规范中,单独存在的标签是不需要使用/来自我关闭的,比如<br>,<input>,<hr>等等这样的标签都是符合语法的.
在XHTML规范中,单独存在的标签要按照XML的语法规则进行自我关闭,上面三个标签就应写成<br />,<input />,<hr />
-->
<html>
  <head>
    <meta charset="utf8">
    <style>
      input[type=radio] {
        /* 按钮与文字对齐 */
        vertical-align:middle;
      }
      input[type=file] {
        display: block;
      }
      #img {
        width: 200px;
        height: 200px;
        border: 1px solid black;
        margin-top: 10px;
      }
    </style>
  </head>
  <body>
    <input type="radio" name="previewType" value="fileReader" onChange="onPreviewTypeChange()">fileReader
    <input type="radio" name="previewType" value="createURL" onChange="onPreviewTypeChange()">createURL
    <hr>
    <input type="file" id="imgFile" onChange="imgChange()" value="test.jpg">
    <img id="img">
    <script>
      var previewTypes = document.getElementsByName("previewType");
      var imgFile = document.getElementById("imgFile");
      var img = document.getElementById("img");

      function getPreviewType() {
        for(var i=0; i<previewTypes.length; i++) {
          if(previewTypes[i].checked) {
            return previewTypes[i].value;
          }
        }
      }

      function onPreviewTypeChange() {
        imgChange(event.target.value);
      }

      function imgChange(type) {
        img.src = "";
        var files = imgFile.files;
        console.log(files);
        if(!files || files.length === 0) {
          return;
        }
        var file = files[0];
        if(!type) {
          type = getPreviewType();
          if(!type) {
            return;
          }
        }
        switch(type) {
          case "fileReader":
            var fr = new FileReader();
            fr.onload = function(progressEvent) {
              console.log(progressEvent);
              img.src = progressEvent.target.result;
            }
            fr.readAsDataURL(file);
            break;
          case "createURL":
            img.onload = function() {
              //释放一个之前通过调用 URL.createObjectURL() 创建的已经存在的 URL 对象。
              URL.revokeObjectURL(img.src);
            }
            img.src = URL.createObjectURL(file);
            break;
        }
      }
    </script>
  </body>
</html>

fileReader.readAsDataURL

基于JavaScript实现本地图片预览

URL.createObjectURL

可以看出URL实质上是以“blob:”打头的,后面跟着32位的UUID(8-4-4-4-12)的结构。

基于JavaScript实现本地图片预览

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 点击整页变灰的效果(可做退出效果)。
Jan 09 Javascript
Firefox下提示illegal character并出现乱码的原因
Mar 25 Javascript
jquer之ajaxQueue简单实现代码
Sep 15 Javascript
JS/jQuery实现默认显示部分文字点击按钮显示全部内容
May 13 Javascript
认识Knockout及如何使用Knockout绑定上下文
Dec 25 Javascript
BootStrap轮播HTML代码(推荐)
Dec 10 Javascript
bootstrap table 数据表格行内修改的实现代码
Feb 13 Javascript
JS时间控制实现动态效果的实例讲解
Jul 31 Javascript
详解js类型判断
May 22 Javascript
Vue项目查看当前使用的elementUI版本的方法
Sep 27 Javascript
React Component存在的几种形式详解
Nov 06 Javascript
深入分析jQuery.one() 函数
Jun 03 jQuery
js 判断登录界面的账号密码是否为空
Feb 08 #Javascript
jQuery通过改变input的type属性实现密码显示隐藏切换功能
Feb 08 #Javascript
js获取地址栏中传递的参数(两种方法)
Feb 08 #Javascript
Bootstrap模态窗口源码解析
Feb 08 #Javascript
Bootstrap路径导航与分页学习使用
Feb 08 #Javascript
Bootstrap缩略图与警告框学习使用
Feb 08 #Javascript
Bootstrap导航条学习使用(二)
Feb 08 #Javascript
You might like
PHP禁止页面缓存的代码
2011/10/23 PHP
destoon实现调用当前栏目分类及子分类和三级分类的方法
2014/08/21 PHP
PHP+MySQL修改记录的方法
2015/01/21 PHP
php制作动态随机验证码
2015/02/12 PHP
php经典算法集锦
2015/11/14 PHP
thinkPHP订单数字提醒功能的实现方法
2016/12/01 PHP
PHP获取访问设备信息的方法示例
2019/02/20 PHP
将HTML自动转为JS代码
2006/06/26 Javascript
JavaScript 闭包深入理解(closure)
2009/05/27 Javascript
JSON.parse 解析字符串出错的解决方法
2010/07/08 Javascript
xss文件页面内容读取(解决)
2010/11/28 Javascript
一个简单的Ext.XTemplate的实例代码
2012/03/18 Javascript
jquery ajax属性async(同步异步)示例
2013/11/05 Javascript
jquery实现的省市区三级联动
2015/04/02 Javascript
Winform客户端向web地址传参接收参数的方法
2016/05/17 Javascript
提高Node.js性能的应用技巧分享
2017/08/10 Javascript
vue项目创建并引入饿了么elementUI组件的步骤
2019/04/11 Javascript
Element-Ui组件 NavMenu 导航菜单的具体使用
2019/10/24 Javascript
JavaScript 正则应用详解【模式、欲查、反向引用等】
2020/05/13 Javascript
[03:11]DOTA2上海特锦赛小组赛第一日recap精彩回顾
2016/02/28 DOTA
Python map和reduce函数用法示例
2015/02/26 Python
Python的Tornado框架实现图片上传及图片大小修改功能
2016/06/30 Python
PYTHON基础-时间日期处理小结
2018/05/05 Python
实例讲解python中的协程
2018/10/08 Python
Python 抓取微信公众号账号信息的方法
2019/06/14 Python
Python Django中间件使用原理及流程分析
2020/06/13 Python
Python代码需要缩进吗
2020/07/01 Python
ReVive利维肤美国官网:RéVive Skincare
2018/04/18 全球购物
机关单位动员会主持词
2014/03/20 职场文书
孝老爱亲模范事迹材料
2014/05/25 职场文书
党的群众路线教育实践活动督导组工作情况汇报
2014/10/28 职场文书
经验交流材料格式
2014/12/30 职场文书
师范生见习自我总结
2015/06/23 职场文书
企业催款函范本
2015/06/24 职场文书
聘用合同范本
2015/09/21 职场文书
分析设计模式之模板方法Java实现
2021/06/23 Java/Android