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 相关文章推荐
ajaxControlToolkit AutoCompleteExtender的用法
Oct 30 Javascript
一个非常全面的javascript URL解析函数和分段URL解析方法
Apr 12 Javascript
Yii2使用Bootbox插件实现自定义弹窗
Apr 02 Javascript
js插件YprogressBar实现漂亮的进度条效果
Apr 20 Javascript
javascript实现复选框全选或反选
Feb 04 Javascript
基于JavaScript实现类名的添加与移除
Apr 23 Javascript
浅谈 Vue v-model指令的实现原理
Jun 08 Javascript
Bootstrap 树控件使用经验分享(图文解说)
Nov 06 Javascript
详解Angular6 热加载配置方案
Aug 18 Javascript
详解ES6系列之私有变量的实现
Nov 21 Javascript
JavaScript实现飞舞的泡泡效果
Feb 07 Javascript
js生成1到100的随机数最简单的实现方法
Feb 07 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
UCenter中的一个可逆加密函数authcode函数代码
2010/07/20 PHP
php 计划任务 检测用户连接状态
2012/03/29 PHP
用PHP实现弹出消息提示框的两种方法
2013/12/17 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
js实现的网页颜色代码表全集
2007/07/17 Javascript
JS中类或对象的定义说明
2014/03/10 Javascript
前端微信支付js代码
2016/07/25 Javascript
理解AngularJs篇:30分钟快速掌握AngularJs
2016/12/23 Javascript
JavaScript函数基础详解
2017/02/03 Javascript
最通俗易懂的javascript变量提升详解
2017/08/05 Javascript
探索Vue高阶组件的使用
2018/01/08 Javascript
vue左侧菜单,树形图递归实现代码
2018/08/24 Javascript
Vue刷新修改页面中数据的方法
2018/09/16 Javascript
浅谈React之状态(State)
2018/09/19 Javascript
详解Angular5/Angular6项目如何添加热更新(HMR)功能
2018/10/10 Javascript
快速了解Node中的Stream流是什么
2019/02/13 Javascript
JS浅拷贝和深拷贝原理与实现方法分析
2019/02/28 Javascript
Jquery动态列功能完整实例
2019/08/30 jQuery
微信小程序实现点击生成随机验证码
2020/09/09 Javascript
在nodejs中创建child process的方法
2021/01/26 NodeJs
用Python实现一个简单的线程池
2015/04/07 Python
python使用matplotlib库生成随机漫步图
2018/08/27 Python
学习Python需要哪些工具
2020/09/04 Python
python 爬虫网页登陆的简单实现
2020/11/30 Python
Matlab使用Plot函数实现数据动态显示方法总结
2021/02/25 Python
CSS3实现复选框动画特效示例代码
2016/09/27 HTML / CSS
canvas学习笔记之绘制简单路径
2019/01/28 HTML / CSS
印度尼西亚最好的小工具在线商店:Erafone.com
2019/03/26 全球购物
澳大利亚音乐商店:Bava’s Music City
2019/05/05 全球购物
户籍证明的格式
2014/01/13 职场文书
本科毕业生专业自荐书范文
2014/02/05 职场文书
计划生育证明格式范本
2014/09/12 职场文书
中学音乐课教学反思
2016/02/18 职场文书
送给自己的励志语句:要安静的优秀,悄无声息的坚强
2019/11/26 职场文书
导游词之唐山景点
2019/12/18 职场文书
Pandas 数据编码的十种方法
2022/04/20 Python