上传图片预览JS脚本 Input file图片预览的实现示例

 更新时间:2014年10月23日 17:17:24   投稿:whsnow  
需要一个用户上传头像预览的功能,因此写了一段上传图片预览JS脚本,Input file图片预览的实现,需要的朋友可以看看

在深圳做项目的时候,需要一个用户上传头像预览的功能!是在网上找了好多,都不太满意。要么是flash的,要么是Ajax上传后返回图片路径的,要么压根就是不能用的。幸运的是在这个项目以前有人写过一个图片预览的功能,还被我给翻了出来,在这里做个记录,方便自己以后用,也方便其他需要的朋友!

代码很简单,如下:

<!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>By:DragonDean</title>
<script type="text/javascript">
//下面用于图片上传预览功能
function setImagePreview(avalue) {
var docObj=document.getElementById("doc");

var imgObjPreview=document.getElementById("preview");
if(docObj.files &&docObj.files[0])
{
//火狐下,直接设img属性
imgObjPreview.style.display = 'block';
imgObjPreview.style.width = '150px';
imgObjPreview.style.height = '180px'; 
//imgObjPreview.src = docObj.files[0].getAsDataURL();

//火狐7以上版本不能用上面的getAsDataURL()方式获取,需要一下方式
imgObjPreview.src = window.URL.createObjectURL(docObj.files[0]);
}
else
{
//IE下,使用滤镜
docObj.select();
var imgSrc = document.selection.createRange().text;
var localImagId = document.getElementById("localImag");
//必须设置初始大小
localImagId.style.width = "150px";
localImagId.style.height = "180px";
//图片异常的捕捉,防止用户修改后缀来伪造图片
try{
localImagId.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc;
}
catch(e)
{
alert("您上传的图片格式不正确,请重新选择!");
return false;
}
imgObjPreview.style.display = 'none';
document.selection.empty();
}
return true;
}

</script>
</head>

<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td height="101" align="center">
<div id="localImag"><img id="preview" src="http://blog.chuangling.net/Public/images/top.jpg" width="150" height="180" style="display: block; width: 150px; height: 180px;"></div>
</td>
</tr>
<tr>
<td align="center" style="padding-top:10px;"><input type="file" name="file" id="doc" style="width:150px;" onchange="javascript:setImagePreview();"></td>
</tr>
</tbody>
</table>
</body>
</html>

测试在IE8,FF12.0和谷歌chrome 28.0.1500.72都能用!

相关文章

  • 详解ES6 扩展运算符的使用与注意事项

    详解ES6 扩展运算符的使用与注意事项

    扩展运算符 (spread syntax) 是 ES6 提供的一种非常便捷的新语法,给我们操作数组和对象带来了非常大的便利,我在很多文章中也提到了这个语法。但是其实扩展运算符的用法还是比较多比较杂的,我用一篇文章来做一下总结,梳理一下扩展运算的语法和使用细节。
    2020-11-11
  • 纯JS代码实现气泡效果

    纯JS代码实现气泡效果

    js气泡效果,在项目需求中经常遇到。今天小编把大概实现步骤分享到脚本之家平台,感兴趣的朋友可以参考下
    2016-05-05
  • 老生常谈JavaScript面向对象基础与this指向问题

    老生常谈JavaScript面向对象基础与this指向问题

    下面小编就为大家带来一篇老生常谈JavaScript面向对象基础与this指向问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • 浅析js 文字滚动效果

    浅析js 文字滚动效果

    文字滚动显示,是网页企业公告,文字链广告常用的一种效果,说不定在什么时候你就能看到它。
    2010-05-05
  • Js(JavaScript)中,弹出是或否的选择框示例(confirm用法的实例分析)

    Js(JavaScript)中,弹出是或否的选择框示例(confirm用法的实例分析)

    以下是对confirm的用法进行了分析介绍,需要的朋友可以参考下
    2013-07-07
  • livereload工具实现前端可视化开发【推荐】

    livereload工具实现前端可视化开发【推荐】

    本文将介绍一个工具--livereload。这是一款能根据你本地文件(html、css、js)的变化,自动跟踪刷新浏览器的实时刷新工具,有了这个工具,会大大减轻你刷新页面的工作量。下面跟着小编一起来看下吧
    2016-12-12
  • 原生js仿浏览器滚动条效果

    原生js仿浏览器滚动条效果

    本文主要介绍了原生js仿浏览器滚动条效果的实例。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-03-03
  • Bootstrap框架动态生成Web页面文章内目录的方法

    Bootstrap框架动态生成Web页面文章内目录的方法

    这篇文章主要介绍了Bootstrap框架动态生成Web页面文章内目录的方法,利用Bootstrap中的Affix和ScrollSpy插件便可以实现,需要的朋友可以参考下
    2016-05-05
  • js生成二维码的示例代码

    js生成二维码的示例代码

    这篇文章主要介绍了js生成二维码的示例代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • JS+CSS实现DIV层的展开、收缩效果

    JS+CSS实现DIV层的展开、收缩效果

    这篇文章主要介绍了JS+CSS实现DIV层的展开、收缩效果,以两个完整实例介绍了JS控制DIV层的展开、收缩效果,感兴趣的小伙伴们可以参考一下
    2016-01-01

最新评论