直接贴代码吧:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >

<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>

最新文章

  1. 用GitHub Pages搭了个静态博客
  2. 信号量sem
  3. jQuery鼠标滚动垂直全屏切换代码
  4. 干货发布:VSS文件清理工具
  5. java调用存储过程
  6. 【HDU4578 Transformation】线段树
  7. 【翻译】Zakas解答Baranovskiy的JavaScript测验题
  8. android关机充电
  9. 利用代码改变世界 #AzureDev
  10. BZOJ 1499 NOI2005 瑰丽华尔兹 单调队列
  11. Grunt 之 Connect
  12. thinkphp中find()和select()的区别
  13. shell 生成任意大小文件
  14. DNS服务器 知识点
  15. phxpaxos实现状态机CAS操作
  16. spring 空指针报错,Could not create connection to database server.
  17. php .htaccess 伪静态
  18. css易错点总结
  19. Android逆向 APK文件组成
  20. Modbus读写模拟量寄存器具体解释

热门文章

  1. android:listView Button 焦点问题
  2. 精品绿色便携软件 &amp; 录制操作工具
  3. LeetCode 34 Search for a Range (有序数组中查找给定数字的起止下标)
  4. openstack 中镜像状态详解 Image Statuses
  5. ubuntu 14.04 升级到 16.04 问题总结
  6. Coding和Git的环境搭建
  7. jquery的ajax()函数中文传值出现乱码完美解决方案
  8. 关于javaagent拦截不到File类的问题
  9. JVM源码分析之javaagent原理完全解读
  10. 【BZOJ1814】Ural 1519 Formula 1 插头DP