上传图片预览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实现多域名不同文件的调用方法
Jan 12 Javascript
jQuery 学习第七课 扩展jQuery的功能 插件开发
May 17 Javascript
javascript深入理解js闭包
Jul 03 Javascript
关于event.cancelBubble和event.stopPropagation()的区别介绍
Dec 11 Javascript
js判断undefined类型示例代码
Feb 10 Javascript
js的延迟执行问题分析
Jun 23 Javascript
js对象的复制继承实例
Jan 10 Javascript
jQuery实现大转盘抽奖活动仿QQ音乐代码分享
Aug 21 Javascript
jQuery的$.extend 浅拷贝与深拷贝
Mar 08 Javascript
Bootstrap Table 双击、单击行获取该行及全表内容
Aug 31 Javascript
vue自定义指令之面板拖拽的实现
Apr 14 Javascript
vue fetch中的.then()的正确使用方法
Apr 17 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 getsiteurl()函数
2009/09/05 PHP
PHP 数组遍历foreach语法结构及实例
2016/06/13 PHP
laravel框架模型和数据库基础操作实例详解
2020/01/25 PHP
Javascript this关键字使用分析
2008/10/21 Javascript
JavaScript入门之基本函数详解
2011/10/21 Javascript
json原理分析及实例介绍
2012/11/29 Javascript
js操作textarea 常用方法总结
2012/12/03 Javascript
JS前端框架关于重构的失败经验分享
2013/03/17 Javascript
多个表单中如何获得这个文件上传的网址实现js代码
2013/03/25 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
JS中实现简单Formatter函数示例代码
2014/08/19 Javascript
基于javascript实现图片懒加载
2016/01/05 Javascript
在页面中输出当前客户端时间javascript实例代码
2016/03/02 Javascript
浅析Bootstrap缩略图组件与警示框组件
2016/04/29 Javascript
Angular ng-class详解及实例代码
2016/09/19 Javascript
基于Angular.js实现的触摸滑动动画实例代码
2017/02/19 Javascript
简单实现jQuery轮播效果
2017/08/18 jQuery
react-native中ListView组件点击跳转的方法示例
2017/09/30 Javascript
iview实现select tree树形下拉框的示例代码
2018/12/21 Javascript
express框架中使用jwt实现验证的方法
2019/08/25 Javascript
JavaScript实现缓动动画
2020/11/25 Javascript
python原始套接字编程示例分享
2014/02/21 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
2018/05/24 Python
Python基于matplotlib画箱体图检验异常值操作示例【附xls数据文件下载】
2019/01/07 Python
python matplotlib库绘制散点图例题解析
2019/08/10 Python
Python异常模块traceback用法实例分析
2019/10/22 Python
Python warning警告出现的原因及忽略方法
2020/01/31 Python
Python读取VOC中的xml目标框实例
2020/03/10 Python
教师自我剖析材料范文
2014/09/30 职场文书
个人年终总结结尾
2015/03/06 职场文书
英语演讲开场白
2015/05/29 职场文书
2016创先争优活动党员公开承诺书
2016/03/24 职场文书
2016年“我们的节日·中秋节”活动总结
2016/04/05 职场文书
深入浅出讲解Java8函数式编程
2022/01/18 Java/Android
使用 DataAnt 监控 Apache APISIX的原理解析
2022/07/07 Servers
html用代码制作虚线框怎么做? dw制作虚线圆圈的技巧
2022/12/24 HTML / CSS