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


Posted in Javascript onOctober 23, 2014

在深圳做项目的时候,需要一个用户上传头像预览的功能!是在网上找了好多,都不太满意。要么是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都能用!

Javascript 相关文章推荐
不用写JS也能使用EXTJS视频演示
Dec 29 Javascript
JavaScript XML和string相互转化实现代码
Jul 04 Javascript
js操作checkbox遇到的问题解决
Jun 29 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
Dec 04 Javascript
JavaScript中操作字符串之localeCompare()方法的使用
Jun 06 Javascript
jquery实现从数组移除指定的值
Jun 24 Javascript
原生js实现放大镜效果
Jan 11 Javascript
JavaScript实现反转字符串的方法详解
Apr 27 Javascript
vue2组件之select2调用的示例代码
Oct 12 Javascript
Vue表单控件数据绑定方法详解
Feb 05 Javascript
vant-ui AddressEdit地址编辑和van-area的用法说明
Nov 03 Javascript
JavaScript实现简单的音乐播放器
Aug 14 Javascript
实用框架(iframe)操作代码
Oct 23 #Javascript
form.submit()不能提交表单的原因分析
Oct 23 #Javascript
Google Maps API地图应用示例分享
Oct 23 #Javascript
深入分析JQuery和JavaScript的异同
Oct 23 #Javascript
jquery实现导航固定顶部的效果仿蘑菇街
Oct 22 #Javascript
用jquery模仿的a的title属性的例子
Oct 22 #Javascript
运用jQuery定时器的原理实现banner图片切换
Oct 22 #Javascript
You might like
用PHP写的基于Memcache的Queue实现代码
2011/11/27 PHP
浅析Apache中RewriteCond规则参数的详细介绍
2013/06/30 PHP
浅析php中常量,变量的作用域和生存周期
2013/08/10 PHP
php计算两个日期时间差(返回年、月、日)
2014/06/19 PHP
CI框架安全类Security.php源码分析
2014/11/04 PHP
Yii2.0框架behaviors方法使用实例分析
2019/09/30 PHP
3Z版基于jquery的图片复选框(asp.net+jquery)
2010/04/12 Javascript
JS截取字符串常用方法整理及使用示例
2013/10/18 Javascript
得到form下的所有的input的js代码
2013/11/07 Javascript
JavaScript三元运算符的多种使用技巧
2015/04/16 Javascript
实例详解ECMAScript5中新增的Array方法
2016/04/05 Javascript
jquery中live()方法和bind()方法区别分析
2016/06/23 Javascript
Bootstrap的Refresh Icon也spin起来
2016/07/13 Javascript
Google 地图获取API Key详细教程
2016/08/06 Javascript
JavaSctit 利用FileReader和滤镜上传图片预览功能
2017/09/05 Javascript
angular2路由之routerLinkActive指令【推荐】
2018/05/30 Javascript
vue单页应用的内存泄露定位和修复问题小结
2019/08/02 Javascript
vscode 插件开发 + vue的操作方法
2020/06/05 Javascript
[51:17]Mski vs VGJ.S Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
Python中字典的基础知识归纳小结
2015/08/19 Python
Python编程实现的简单神经网络算法示例
2018/01/26 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
2018/10/16 Python
Python不同目录间进行模块调用的实现方法
2019/01/29 Python
Python3.4学习笔记之类型判断,异常处理,终止程序操作小结
2019/03/01 Python
Python中操作各种多媒体,视频、音频到图片的代码详解
2020/06/04 Python
Python内存泄漏和内存溢出的解决方案
2020/09/26 Python
StubHub澳大利亚:购买或出售您的门票
2019/08/01 全球购物
乌克兰的第一家手表店:Deka
2020/03/05 全球购物
Shell脚本如何向终端输出信息
2014/04/25 面试题
门卫人员岗位职责
2013/12/24 职场文书
行政助理工作职责范本
2014/03/04 职场文书
项目经理聘任书
2014/03/29 职场文书
2014世界杯球队球队口号
2014/06/05 职场文书
大雁塔英文导游词
2015/02/10 职场文书
一文搞懂Golang 时间和日期相关函数
2021/12/06 Golang
Nginx速查手册及常见问题
2022/04/07 Servers