JS实现图片上传预览功能


Posted in Javascript onNovember 21, 2016

废话不多说了,直接给大家贴js代码了,具体代码如下所示:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
  <title></title>
</head>
<body>
  <div id="divPreview">
    <img id="imgHeadPhoto" src="noperson.jpg" style="width: 160px; height: 170px; border: solid 1px #d2e2e2;"
      alt="" />
  </div>
  <input type="file" onchange="PreviewImage(this,'imgHeadPhoto','divPreview');" size="20" />
  <script type="text/javascript">
    //js本地图片预览,兼容ie[6-9]、火狐、Chrome17+、Opera11+、Maxthon3
    function PreviewImage(fileObj, imgPreviewId, divPreviewId) {
      var allowExtention = ".jpg,.bmp,.gif,.png"; //允许上传文件的后缀名document.getElementById("hfAllowPicSuffix").value;
      var extention = fileObj.value.substring(fileObj.value.lastIndexOf(".") + 1).toLowerCase();
      var browserVersion = window.navigator.userAgent.toUpperCase();
      if (allowExtention.indexOf(extention) > -1) {
        if (fileObj.files) {//HTML5实现预览,兼容chrome、火狐7+等
          if (window.FileReader) {
            var reader = new FileReader();
            reader.onload = function (e) {
              document.getElementById(imgPreviewId).setAttribute("src", e.target.result);
            }
            reader.readAsDataURL(fileObj.files[0]);
          } else if (browserVersion.indexOf("SAFARI") > -1) {
            alert("不支持Safari6.0以下浏览器的图片预览!");
          }
        } else if (browserVersion.indexOf("MSIE") > -1) {
          if (browserVersion.indexOf("MSIE 6") > -1) {//ie6
            document.getElementById(imgPreviewId).setAttribute("src", fileObj.value);
          } else {//ie[7-9]
            fileObj.select();
            if (browserVersion.indexOf("MSIE 9") > -1)
              fileObj.blur(); //不加上document.selection.createRange().text在ie9会拒绝访问
            var newPreview = document.getElementById(divPreviewId + "New");
            if (newPreview == null) {
              newPreview = document.createElement("div");
              newPreview.setAttribute("id", divPreviewId + "New");
              newPreview.style.width = document.getElementById(imgPreviewId).width + "px";
              newPreview.style.height = document.getElementById(imgPreviewId).height + "px";
              newPreview.style.border = "solid 1px #d2e2e2";
            }
            newPreview.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale',src='" + document.selection.createRange().text + "')";
            var tempDivPreview = document.getElementById(divPreviewId);
            tempDivPreview.parentNode.insertBefore(newPreview, tempDivPreview);
            tempDivPreview.style.display = "none";
          }
        } else if (browserVersion.indexOf("FIREFOX") > -1) {//firefox
          var firefoxVersion = parseFloat(browserVersion.toLowerCase().match(/firefox\/([\d.]+)/)[1]);
          if (firefoxVersion < 7) {//firefox7以下版本
            document.getElementById(imgPreviewId).setAttribute("src", fileObj.files[0].getAsDataURL());
          } else {//firefox7.0+          
            document.getElementById(imgPreviewId).setAttribute("src", window.URL.createObjectURL(fileObj.files[0]));
          }
        } else {
          document.getElementById(imgPreviewId).setAttribute("src", fileObj.value);
        }
      } else {
        alert("仅支持" + allowExtention + "为后缀名的文件!");
        fileObj.value = ""; //清空选中文件
        if (browserVersion.indexOf("MSIE") > -1) {
          fileObj.select();
          document.selection.clear();
        }
        fileObj.outerHTML = fileObj.outerHTML;
      }
      return fileObj.value;  //返回路径
    }
  </script>
</body>
</html>

以上所述是小编给大家介绍的JS实现图片上传预览功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
通过JS 获取Mouse Position(鼠标坐标)的代码
Sep 21 Javascript
JavaScript 动态创建VML的方法
Oct 14 Javascript
JavaScript作用域链使用介绍
Aug 29 Javascript
浅谈JSON中stringify 函数、toJosn函数和parse函数
Jan 26 Javascript
jQuery判断数组是否包含了指定的元素
Mar 10 Javascript
在Node.js中使用Javascript Generators详解
May 05 Javascript
jQuery删除节点用法示例(remove方法)
Sep 08 Javascript
vue日期组件 支持vue1.0和2.0
Jan 09 Javascript
原生JS+Canvas实现五子棋游戏实例
Jun 19 Javascript
JSON对象转化为字符串详解
Aug 11 Javascript
JavaScript设计模式之代理模式实例分析
Jan 16 Javascript
JS数组扁平化、去重、排序操作实例详解
Feb 24 Javascript
值得分享的JavaScript实现图片轮播组件
Nov 21 #Javascript
使用Ajax生成的Excel文件并下载的实例
Nov 21 #Javascript
javascript入门之数组[新手必看]
Nov 21 #Javascript
jQuery UI插件实现百度提词器效果
Nov 21 #Javascript
javascript中Number的方法小结
Nov 21 #Javascript
Bootstrap中定制LESS-颜色及导航条(推荐)
Nov 21 #Javascript
js实现HashTable(哈希表)的实例分析
Nov 21 #Javascript
You might like
php intval的测试代码发现问题
2008/07/27 PHP
PHP项目开发中最常用的自定义函数整理
2010/12/02 PHP
php错误提示failed to open stream: HTTP request failed!的完美解决方法
2011/06/06 PHP
php下载文件的代码示例
2012/06/29 PHP
php实现用手机关闭计算机(电脑)的方法
2015/04/22 PHP
phalcon框架使用指南
2016/02/23 PHP
PHP中array_keys和array_unique函数源码的分析
2016/02/26 PHP
PHP简单判断iPhone、iPad、Android及PC设备的方法
2016/10/11 PHP
PHP7 整型处理机制修改
2021/03/09 PHP
jquery 结合C#后台的数组对文章的关键字自动添加链接的代码
2011/07/15 Javascript
javascript权威指南 学习笔记之变量作用域分享
2011/09/28 Javascript
JS实现两个大数(整数)相乘
2014/04/28 Javascript
js实现在同一窗口浏览图片
2014/09/17 Javascript
JSON取值前判断
2014/12/23 Javascript
javascript执行环境及作用域详解
2016/05/05 Javascript
只需五句话搞定JavaScript作用域(经典)
2016/07/26 Javascript
JavaScript第一篇之实现按钮全选、功能
2016/08/21 Javascript
Angular.JS学习之依赖注入$injector详析
2016/10/20 Javascript
非常实用的vue导航钩子
2017/03/20 Javascript
合并Excel工作薄中成绩表的VBA代码,非常适合教育一线的朋友
2009/04/09 Python
初学python数组的处理代码
2011/01/04 Python
Ubuntu下使用Python实现游戏制作中的切分图片功能
2018/03/30 Python
Python小游戏之300行代码实现俄罗斯方块
2019/01/04 Python
Python数据类型之String字符串实例详解
2019/05/08 Python
python被修饰的函数消失问题解决(基于wraps函数)
2019/11/04 Python
Python常用模块sys,os,time,random功能与用法实例分析
2020/01/07 Python
推荐技术人员一款Python开源库(造数据神器)
2020/07/08 Python
python爬虫请求头的使用
2020/12/01 Python
台湾饭店和机票预订网站:Expedia台湾
2016/08/05 全球购物
办理护照介绍信
2014/01/16 职场文书
劳动之星获奖感言
2014/02/01 职场文书
光棍节联谊晚会活动策划书
2014/10/10 职场文书
开展党的群众路线教育实践活动情况汇报
2014/11/05 职场文书
人事部:年度述职报告范文
2019/07/12 职场文书
python基于机器学习预测股票交易信号
2021/05/25 Python
redis 解决库存并发问题实现数量控制
2022/04/08 Redis