图片上传后我们有时候需要预览一下上传后的效果,所以我们必要加上图片上传即时预览的功能,下面的代码轻松实现。
源码
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
//设置图片上传后预览的div样式
<style type="text/css">
#preview, .img, img
{width:200px;
height:200px;
}#preview{border:1px solid #000;
}</style></head><body><div id="preview"></div>
<input type="file" onchange="preview(this)" />
//图片上传和预览
<script type="text/javascript">
function preview(file)
{var prevDiv = document.getElementById('preview');
if (file.files && file.files[0])
{var reader = new FileReader();
reader.onload = function(evt){
prevDiv.innerHTML = '
<img src="' + evt.target.result + '" />
';
}reader.readAsDataURL(file.files[0]);
}else
{prevDiv.innerHTML = '
<div class="img"style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src=\'' + file.value + '\'"></div>
';
}}</script></body></html>
说明
1、删去 #preview, .img, img 中 对于高 height 的设置
#preview, .img, img {
width:200px;
}
这样,显示出来的图象,仍然保持原有的 宽/高 之比例。
2、 删去 <div > 的属性:
style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,
即:var s = '<div class="img"';
s+='src=\'' + file.value + '\'"></div>';
prevDiv.innerHTML=s;
这样,仍然保持原有的功能。
