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 textarea的长度进行验证
May 06 Javascript
6款新颖的jQuery和CSS3进度条插件推荐
Mar 05 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
Mar 18 Javascript
jQuery实现视频作为全屏幕背景
Dec 18 Javascript
jQuery中focus事件用法实例
Dec 26 Javascript
AngularJS 与百度地图的结合实例
Oct 20 Javascript
js调用屏幕宽度的简单方法
Nov 14 Javascript
jQuery编写textarea输入字数限制代码
Mar 23 jQuery
JavaScript运动框架 多物体任意值运动(三)
May 17 Javascript
对layui中表单元素的使用详解
Aug 15 Javascript
浅谈angularJS2中的界面跳转方法
Aug 31 Javascript
Windows下安装 node 的版本控制工具 nvm
Feb 06 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
基于mysql的论坛(3)
2006/10/09 PHP
php插入排序法实现数组排序实例
2015/02/16 PHP
php parse_str() 函数的定义和用法
2016/05/23 PHP
浅析PHP 中move_uploaded_file 上传中文文件名失败
2019/04/17 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
2019/10/11 PHP
Z-Blog中用到的js代码
2007/03/15 Javascript
jquery keypress,keyup,onpropertychange键盘事件
2010/06/25 Javascript
一个基于jquery的图片切换效果
2010/07/06 Javascript
jquery 插件学习(一)
2012/08/06 Javascript
javascript中var的重要性分析
2015/02/11 Javascript
jquery利用拖拽方式在图片上添加热链接
2015/11/24 Javascript
基于javascript如何传递特殊字符
2015/11/30 Javascript
移动端触屏幻灯片图片切换插件idangerous swiper.js
2017/04/10 Javascript
基于nodejs+express4.X实现文件下载的实例代码
2017/07/13 NodeJs
laydate 显示结束时间不小于开始时间的实例
2017/08/11 Javascript
javascript算法之二叉搜索树的示例代码
2017/09/12 Javascript
JavaScript实现HTML5游戏断线自动重连的方法
2017/09/18 Javascript
原生JavaScript实现todolist功能
2018/03/02 Javascript
Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定
2019/04/29 Javascript
基于JS实现一个随机生成验证码功能
2019/05/29 Javascript
JS实现放大镜效果
2020/09/21 Javascript
echarts柱状图背景重叠组合而非并列的实现代码
2020/12/10 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——LGD
2018/04/04 DOTA
[01:04]不如跳舞!DOTA2新英雄玛尔斯的欢乐日常
2019/03/11 DOTA
在windows下Python打印彩色字体的方法
2018/05/15 Python
浅谈keras.callbacks设置模型保存策略
2020/06/18 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
2020/09/04 Python
sublime3之内网安装python插件Anaconda的流程
2020/11/10 Python
如何利用python正则表达式匹配版本信息
2020/12/09 Python
Deux par Deux官方网站:设计师童装
2020/01/03 全球购物
英国时尚首饰品牌:Missoma
2020/06/29 全球购物
北京华建集团SQL面试题
2014/06/03 面试题
同事吵架检讨书
2014/02/05 职场文书
喷漆工的岗位职责
2014/03/17 职场文书
2014光棍节大学生联谊活动方案
2014/10/10 职场文书
成都人事代理协议书
2014/10/25 职场文书