基于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 相关文章推荐
js字符编码函数区别分析
Jun 05 Javascript
JavaScript 动态改变图片大小
Jun 11 Javascript
javascript复制对象使用说明
Jun 28 Javascript
原生JS可拖动弹窗效果实例代码
Nov 09 Javascript
Mac/Windows下如何安装Node.js
Nov 22 Javascript
javascript中闭包概念与用法深入理解
Dec 15 Javascript
Angular 4依赖注入学习教程之Injectable装饰器(六)
Jun 04 Javascript
Angular4开发解决跨域问题详解
Aug 28 Javascript
微信小程序实现添加手机联系人功能示例
Nov 30 Javascript
vue+webpack dev本地调试全局样式引用失效的解决方案
Nov 12 Javascript
Vue.js的模板语法详解
Feb 16 Javascript
react-native 实现购物车滑动删除效果的示例代码
Jan 15 Javascript
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
全国FM电台频率大全 - 14 江西省
2020/03/11 无线电
php中session_unset与session_destroy的区别分析
2011/06/16 PHP
codeigniter发送邮件并打印调试信息的方法
2015/03/21 PHP
经典PHP加密解密函数Authcode()修复版代码
2015/04/05 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
2015/09/25 PHP
thinkphp5.1框架中容器(Container)和门面(Facade)的实现方法分析
2019/08/05 PHP
PHP如何使用array_unshift()在数组开头插入元素
2020/09/01 PHP
发现的以前不知道的函数
2006/09/19 Javascript
屏蔽F1~F12的快捷键的js函数
2010/05/06 Javascript
将字符串转换成gb2312或者utf-8编码的参数(js版)
2013/04/10 Javascript
防止xss和sql注入:JS特殊字符过滤正则
2013/04/18 Javascript
JQuery与Ajax调用新浪API获取短网址的代码
2014/02/07 Javascript
node.js中的path.isAbsolute方法使用说明
2014/12/08 Javascript
jQuery中index()方法用法实例
2014/12/27 Javascript
用JavaScript获取页面文档内容的实现代码
2016/06/10 Javascript
JS检测页面中哪个HTML标签触发点击事件的方法
2016/06/17 Javascript
jQuery Pagination分页插件使用方法详解
2017/02/28 Javascript
Python中的魔法方法深入理解
2014/07/09 Python
python实现自动重启本程序的方法
2015/07/09 Python
Python实现的RSS阅读器实例
2015/07/25 Python
Python 实现try重新执行
2019/12/21 Python
python调用HEG工具批量处理MODIS数据的方法及注意事项
2020/02/18 Python
Python爬虫之App爬虫视频下载的实现
2020/12/08 Python
纯CSS实现右侧底部悬浮效果(悬浮QQ、微信、微博、邮箱等联系方式)
2015/04/24 HTML / CSS
豆腐の盛田屋官网:日本自然派的豆乳面膜、肥皂、化妆水、乳液等
2016/10/08 全球购物
印度在线内衣和时尚目的地:Zivame
2017/09/28 全球购物
美国最大的船只买卖在线市场:Boat Trader
2018/08/04 全球购物
英国最大的户外商店:Go Outdoors
2019/04/17 全球购物
"引用"与指针的区别是什么
2016/09/07 面试题
纪念建党演讲稿范文
2014/01/13 职场文书
社区安全检查制度
2014/02/03 职场文书
职位说明书范文
2014/05/07 职场文书
地质工程专业毕业生求职信
2014/08/08 职场文书
退休教师追悼词
2015/06/23 职场文书
导游词之蓬莱长岛
2019/12/17 职场文书
引用计数法和root搜索算法以及JVM中判定对象需要回收的方法
2022/04/19 Java/Android