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 相关文章推荐
Jquery.TreeView结合ASP.Net和数据库生成菜单导航条
Aug 27 Javascript
javascript 模拟坦克大战游戏(html5版)附源码下载
Apr 08 Javascript
jQuery实现的一个自定义Placeholder属性插件
Aug 11 Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
Feb 25 Javascript
js 将图片连接转换成base64格式的简单实例
Aug 10 Javascript
详谈AngularJs 控制器、数据绑定、作用域
Jul 09 Javascript
JS实现弹出下载对话框及常见文件类型的下载
Jul 13 Javascript
angularJS实现不同视图同步刷新详解
Oct 09 Javascript
vue实现节点增删改功能
Sep 26 Javascript
Layui实现数据表格默认全部显示(不要分页)
Oct 26 Javascript
vuex存值与取值的实例
Nov 06 Javascript
解决iview table组件里的 固定列 表格不自适应的问题
Nov 13 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
php5中类的学习
2008/03/28 PHP
给WordPress中的留言加上楼层号的PHP代码实例
2015/12/14 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
2016/01/19 PHP
javascript数组使用调用方法汇总
2007/12/08 Javascript
一个简单的js树形菜单
2011/12/09 Javascript
js导航栏单击事件背景变换示例代码
2014/01/13 Javascript
javascript封装简单实现方法
2015/08/11 Javascript
noty ? jQuery通知插件全面解析
2016/05/18 Javascript
详解微信第三方小程序代开发
2017/06/23 Javascript
Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)
2017/09/15 Javascript
详解基于Vue cli生成的Vue项目的webpack4升级
2018/06/19 Javascript
浅析Vue 防抖与节流的使用
2019/11/14 Javascript
Vue 3.0 全家桶抢先体验
2020/04/28 Javascript
微信小程序学习总结(二)样式、属性、模板操作分析
2020/06/04 Javascript
VUE动态生成word的实现
2020/07/26 Javascript
Vue如何跨组件传递Slot的实现
2020/12/14 Vue.js
[00:44]TI7不朽珍藏III——军团指挥官不朽展示
2017/07/15 DOTA
wxpython 最小化到托盘与欢迎图片的实现方法
2014/06/09 Python
Python3实现从指定路径查找文件的方法
2015/05/22 Python
Python中字典映射类型的学习教程
2015/08/20 Python
总结python爬虫抓站的实用技巧
2016/08/09 Python
Python编程实现双击更新所有已安装python模块的方法
2017/06/05 Python
详谈Python基础之内置函数和递归
2017/06/21 Python
python之matplotlib学习绘制动态更新图实例代码
2018/01/23 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
2019/04/12 Python
python设计微型小说网站(基于Django+Bootstrap框架)
2019/07/08 Python
如何使用python操作vmware
2019/07/27 Python
pytorch 加载(.pth)格式的模型实例
2019/08/20 Python
Python-openCV开运算实例
2020/07/05 Python
Windows下Sqlmap环境安装教程详解
2020/08/04 Python
会计电算化个人自我评价
2013/11/17 职场文书
初中女生自我鉴定
2013/12/19 职场文书
推荐信怎么写
2014/05/09 职场文书
党的群众路线教育实践活动个人对照检查材料(医生)
2014/11/05 职场文书
医德医风学习心得体会
2016/01/25 职场文书
MySQL表的增删改查基础教程
2021/04/07 MySQL