js实现上传图片及时预览


Posted in Javascript onMay 07, 2016

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

先为大家分享一段关于js图片预览的代码,兼容火狐和谷歌浏览器

/* 案例展示图片预览 */
$(function(){
  $("#file0").bind("change",function(){
 
    clickupLoad();
  });
});
function clickupLoad(){
 
  var imgObject = document.getElementById('file0');
  var getImageSrc = getFullPath(imgObject); // 本地路径
  var srcs = window.URL.createObjectURL(imgObject.files[0]);
  var pos = getImageSrc.lastIndexOf(".");
  var lastname = getImageSrc.substring(pos, getImageSrc.length) // 图片后缀]
   
  if(srcs!=""){
    $("#yulan2").attr("src",srcs);
  }else{
    alert("请选择一张图片");
  }
   
}
function getFullPath(obj) {  //得到图片的完整路径
  if (obj)
  {
    if (window.navigator.userAgent.indexOf("MSIE") >= 1){
      obj.select();
      return document.selection.createRange().text;
     
    }else if(window.navigator.userAgent.indexOf("Firefox") >= 1) {
      if (obj.files) {
        return window.URL.createObjectURL(obj.files[0]);
      }
      return obj.value;
    }
    return obj.value;
  }
}

实例代码实现js上传图片及时预览:

<html>
<head>   
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   
<title>图片上传本地预览</title>   
<style type="text/css">
#preview{width:260px;height:190px;border:1px solid #000;overflow:hidden;}
#imghead {filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image);}
</style>
<script type="text/javascript">
 
 
        //图片上传预览  IE是用了滤镜。
    function previewImage(file)
    {
     var MAXWIDTH = 260; 
     var MAXHEIGHT = 180;
     var div = document.getElementById('preview');
     if (file.files && file.files[0])
     {
       div.innerHTML ='<img id=imghead>';
       var img = document.getElementById('imghead');
       img.onload = function(){
        var rect = clacImgZoomParam(MAXWIDTH, MAXHEIGHT, img.offsetWidth, img.offsetHeight);
        img.width = rect.width;
        img.height = rect.height;
//         img.style.marginLeft = rect.left+'px';
        img.style.marginTop = rect.top+'px';
       }
       var reader = new FileReader();
       reader.onload = function(evt){img.src = evt.target.result;}
       reader.readAsDataURL(file.files[0]);
     }
     else //兼容IE
     {
      var sFilter='filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src="';
      file.select();
      var src = document.selection.createRange().text;
      div.innerHTML = '<img id=imghead>';
      var img = document.getElementById('imghead');
      img.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = src;
      var rect = clacImgZoomParam(MAXWIDTH, MAXHEIGHT, img.offsetWidth, img.offsetHeight);
      status =('rect:'+rect.top+','+rect.left+','+rect.width+','+rect.height);
      div.innerHTML = "<div id=divhead style='width:"+rect.width+"px;height:"+rect.height+"px;margin-top:"+rect.top+"px;"+sFilter+src+"\"'></div>";
     }
    }
    function clacImgZoomParam( maxWidth, maxHeight, width, height ){
      var param = {top:0, left:0, width:width, height:height};
      if( width>maxWidth || height>maxHeight )
      {
        rateWidth = width / maxWidth;
        rateHeight = height / maxHeight;
         
        if( rateWidth > rateHeight )
        {
          param.width = maxWidth;
          param.height = Math.round(height / rateWidth);
        }else
        {
          param.width = Math.round(width / rateHeight);
          param.height = maxHeight;
        }
      }
       
      param.left = Math.round((maxWidth - param.width) / 2);
      param.top = Math.round((maxHeight - param.height) / 2);
      return param;
    }
</script>   
</head>   
<body>
<div id="preview">
  <img id="imghead" width=100 height=100 border=0 src='<%=request.getContextPath()%>/images/defaul.jpg'>
</div>
<input type="file" onchange="previewImage(this)" />   
</body>   
</html>

以上就是本文的全部内容,希望对大家学习javascript程序设计有所帮助。

Javascript 相关文章推荐
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
Mar 05 Javascript
原生JS可拖动弹窗效果实例代码
Nov 09 Javascript
web前端设计师们常用的jQuery特效插件汇总
Dec 07 Javascript
JQuery调用绑定click事件的3种写法
Mar 28 Javascript
TypeScript具有的几个不同特质
Apr 07 Javascript
JavaScript实现仿新浪微博大厅和腾讯微博首页滚动特效源码
Sep 15 Javascript
Express的路由详解
Dec 10 Javascript
详解Javascript继承的实现
Mar 25 Javascript
angularJs中datatable实现代码
Jun 03 Javascript
vue的基本用法与常见指令
Aug 15 Javascript
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
Aug 16 Javascript
js瀑布流布局的实现
Jun 28 Javascript
Backbone.js框架中Model与Collection的使用实例
May 07 #Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
May 07 #Javascript
深入解析Backbone.js框架的依赖库Underscore.js的作用
May 07 #Javascript
JavaScript的Backbone.js框架入门学习指引
May 07 #Javascript
JavaScript数组方法总结分析
May 06 #Javascript
JS平滑无缝滚动效果的实现代码
May 06 #Javascript
使用AJAX实现Web页面进度条的实例分享
May 06 #Javascript
You might like
php GeoIP的使用教程
2011/03/09 PHP
php中判断文件存在是用file_exists还是is_file的整理
2012/09/12 PHP
php用户登录之cookie信息安全分析
2016/05/13 PHP
PHP支付系统设计与典型案例分享
2016/08/02 PHP
php微信开发之关注事件
2018/06/14 PHP
Javascript new关键字的玄机 以及其它
2010/08/25 Javascript
jquery 插件学习(四)
2012/08/06 Javascript
jQuery 属性选择器element[herf*='value']使用示例
2013/10/20 Javascript
js 弹出框只弹一次(二次修改之后的)
2013/11/26 Javascript
JS 获取浏览器和屏幕宽高等信息代码
2014/03/31 Javascript
javascript删除一个html元素节点的方法
2014/12/20 Javascript
javascript日期格式化方法汇总
2015/10/04 Javascript
jquery ztree实现模糊搜索功能
2016/02/25 Javascript
vue--点击当前增加class,其他删除class的方法
2018/09/15 Javascript
Vue.js实现大屏数字滚动翻转效果
2019/11/29 Javascript
mpvue网易云短信接口实现小程序短信登录的示例代码
2020/04/03 Javascript
解决vue组件销毁之后计时器继续执行的问题
2020/07/21 Javascript
[51:14]LGD vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
[00:14]护身甲盾
2019/03/06 DOTA
从Python的源码浅要剖析Python的内存管理
2015/04/16 Python
基于python3 类的属性、方法、封装、继承实例讲解
2017/09/19 Python
python 执行shell命令并将结果保存的实例
2018/05/11 Python
Python2包含中文报错的解决方法
2018/07/09 Python
python实现定时压缩指定文件夹发送邮件
2020/12/22 Python
基于腾讯云服务器部署微信小程序后台服务(Python+Django)
2019/05/08 Python
Python爬虫:Request Payload和Form Data的简单区别说明
2020/04/30 Python
利用CSS3的3D效果制作正方体
2020/03/10 HTML / CSS
THE OUTNET英国官网:国际设计师品牌折扣网站
2016/08/14 全球购物
Lacoste美国官网:经典POLO衫品牌
2016/10/12 全球购物
出门问问全球官方商城:Tichome音箱和TicWatch智能手表
2017/12/02 全球购物
学生党支部先进事迹
2014/02/04 职场文书
委托公证书范本
2014/04/03 职场文书
商场圣诞节活动总结
2015/05/06 职场文书
校园歌手大赛主持词
2015/07/03 职场文书
工作自我评价范文
2019/03/21 职场文书
cypress测试本地web应用
2022/06/01 Javascript