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 相关文章推荐
做网页的一些技巧
Feb 01 Javascript
js RuntimeObject() 获取ie里面自定义函数或者属性的集合
Nov 23 Javascript
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
Sep 20 Javascript
js 图片随机不定向浮动的实现代码
Jul 02 Javascript
超级好用的jQuery圆角插件 Corner速成
Aug 31 Javascript
Jquery搜索父元素操作方法
Feb 10 Javascript
JQuery控制Radio选中方法分析
May 29 Javascript
JavaScript如何动态创建table表格
Aug 02 Javascript
JS Attribute属性操作详解
May 19 Javascript
基于JavaScript实现鼠标箭头移动图片跟着移动
Aug 30 Javascript
js调用屏幕宽度的简单方法
Nov 14 Javascript
简单聊聊Vue中的计算属性和属性侦听
Oct 05 Vue.js
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中10个不常见却非常有用的函数
2010/03/21 PHP
php实现过滤表单提交中html标签的方法
2014/10/17 PHP
PHP数组和explode函数示例总结
2015/05/08 PHP
php超快高效率统计大文件行数
2015/07/05 PHP
PHP 实现字符串翻转(包含中文汉字)的实现代码
2017/04/01 PHP
Laravel 关联模型-关联新增和关联更新的方法
2019/10/10 PHP
laravel框架分组控制器和分组路由实现方法示例
2020/01/25 PHP
让回调函数 showResponse 也带上参数的代码
2007/08/13 Javascript
JQuery操作表格(隔行着色,高亮显示,筛选数据)
2012/02/23 Javascript
浏览器解析js生成的html出现样式问题的解决方法
2012/04/16 Javascript
JavaScript根据数据生成百分比图和柱状图的实例代码
2013/07/14 Javascript
js中精确计算加法和减法示例
2014/03/28 Javascript
详解AngularJS中的作用域
2015/06/17 Javascript
Javascript函数式编程语言
2015/10/11 Javascript
基于jPlayer三分屏的制作方法
2016/12/21 Javascript
微信小程序开发探究
2016/12/27 Javascript
原生js实现选项卡功能
2017/03/08 Javascript
JS+jQuery实现注册信息的验证功能
2017/09/26 jQuery
jQuery实现使用sort方法对json数据排序的方法
2018/04/17 jQuery
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
2018/04/21 Javascript
Jquery的autocomplete插件用法及参数讲解
2019/03/12 jQuery
微信小程序音乐播放器开发
2019/11/20 Javascript
element-ui中按需引入的实现
2019/12/25 Javascript
[02:22]《新闻直播间》2017年08月14日
2017/08/15 DOTA
Python中正则表达式的详细教程
2015/04/30 Python
Python遍历指定文件及文件夹的方法
2015/05/09 Python
Python 基础教程之包和类的用法
2017/02/23 Python
Linux CentOS Python开发环境搭建教程
2018/11/28 Python
Python提取特定时间段内数据的方法实例
2019/04/01 Python
Django urls.py重构及参数传递详解
2019/07/23 Python
图解CSS3制作圆环形进度条的实例教程
2016/05/26 HTML / CSS
浅谈HTML5新增和废弃的标签
2019/04/28 HTML / CSS
Columbia美国官网:美国著名的户外服装品牌
2016/11/24 全球购物
英国家庭和商业健身器材购物网站:Fitness Options
2018/07/05 全球购物
干部作风建设个人剖析材料
2014/10/11 职场文书
政审证明范文
2015/06/19 职场文书