演示地址:https://xibushijie.github.io/static/uploadImg.html

<!DOCTYPE>
<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=auto border=0 src='a1.png'></div><input type="file" onchange="previewImage(this)" />
</body></html>

转载于:https://www.cnblogs.com/wangjae/p/11195251.html

js实现图片上传本地预览相关推荐

  1. 图片上传本地预览(回显)插件

    图片上传本地预览插件,本示例只是静态页面,请下载完整的示例查看 请下载完整的js和css样式,以及Demo <html><title>文件上传</title>< ...

  2. html ie8上传图片,图片上传本地预览兼容ie8

    工作中遇到的,总结下来了,图片上传本地预览限制图片最大为2M 图片上传本地预览 #preview1{width:260px;height:190px;border:1px solid #000;ove ...

  3. js实现网页图片上传本地预览

    [实现效果] [相关代码] [HTML] <div id="preview"><div class="single_pic" id=" ...

  4. js html怎么加入图片,js实现图片上传并预览功能

    思路:完成这个功能,首先需要美化上传图片的按钮,然后添加一个 标签,在图片上传之后,用新图片的src替换原来 标签中的src. 如下图所示,是原始的按钮样式: 美化步骤: (1)将上传图片标签采用绝对 ...

  5. JS兼容各个浏览器的本地图片上传即时预览效果

    JS兼容各个浏览器的本地图片上传即时预览效果 很早以前 在工作曾经碰到这么一个需求,当时也是纠结了很久,也是google了很久,没有碰到合适的demo,今天特意研究了下这方面的的问题,所以也就做了个简 ...

  6. input文件框选择本地图片后页面预览图片并获取图片长宽以及大小 图片上传前预览

    前面有转过一篇通过HTML5来实现图片上传前预览 ,现在借助FileReader也实现了这个需求.并且同时还可以获得图片的长宽相素以及图片文件的大小.demo如下: <html> < ...

  7. MUI学习笔记之图片上传和预览

    MUI学习笔记之图片上传和预览 源代码是从博客园下载 我一边学习,一边注释,力求理解 <head> <meta charset="UTF-8"> <m ...

  8. 微信小程序 删除服务器图片,微信小程序实现图片上传放大预览删除代码

    本文实例为大家分享了微信小程序图片上传放大预览的具体代码,供大家参考,具体内容如下 image.js代码: = 9) { this.setData({ lenMore: 1 }); setTimeou ...

  9. uni-app知识点整理(5)- 网络请求、数据缓存、图片上传和预览

    目录 一.网络请求 1.1 发送get请求 二.数据缓存 2.1 uni.setStorage(OBJECT) 2.2 uni.setStorageSync(KEY,DATA) 2.3 uni.get ...

最新文章

  1. 南开15计算机基础,南开大学计算机基础06-07_B卷
  2. Android中Spinner的使用
  3. Azkaban通过API动态传递参数
  4. C# 6.0:Expression – Bodied Methods
  5. python3.5学习笔记:linux6.4 安装python3 pip setuptools
  6. CentOS7安装单机版RabbitMQ集群
  7. SRL——无人机区域定位系统
  8. Ubuntu 10.04.2上编译ecos工具
  9. 每日算法系列【LeetCode 1039】多边形三角剖分的最低得分
  10. scala 高级十六 scala 集合和集合的高级特性 map flatten fllatmap zip reduce zip 等操作...
  11. 如何将MID音乐转换成MP3
  12. 如何使用 JavaScript 读取文件
  13. Android增量升级方案
  14. IBM称欧亚受Conficker病毒感染最严重
  15. MySQL如何删除一行数据
  16. 关于个人微信公众号开通运营通知
  17. MySQL设置自增初始值和步长
  18. Linux下升级jdk版本
  19. Activiti核心API
  20. 买笔记本电脑的13个重要的验机步骤

热门文章

  1. 填问卷赢280元SaaS峰会门票 与Salesforce、Zenefits现场交流!
  2. hdu 2795 段树--点更新
  3. 常用英文标点符号的使用
  4. 原生javascript实现放大镜效果
  5. curl命令具体解释
  6. DirectShow camera demo
  7. CV00-04-卷积
  8. javascript编写_如何通过编写自己的Web开发框架来提高JavaScript技能
  9. java out of range_关于Parameter index out of range求解决办法
  10. 1048 数字加密 --非满分