上传图片预览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 相关文章推荐
关于extjs4如何获取grid修改后的数据的问题
Aug 07 Javascript
js中小数转换整数的方法
Jan 26 Javascript
js中函数声明与函数表达式
Jun 03 Javascript
jQuery实现鼠标经过事件的延时处理效果
Aug 20 Javascript
AngularJs 延时器、计时器实例代码
Sep 16 Javascript
JS动态修改网页body的背景色实例代码
Oct 07 Javascript
JavaScript实现元素滚动条到达一定位置循环追加内容
Dec 28 Javascript
常用的 JS 排序算法 整理版
Apr 05 Javascript
JS实现全屏预览F11功能的示例代码
Jul 23 Javascript
JS实现用特殊符号替换字符串的中间部分区域的实例代码
Jul 24 Javascript
解决使用layui对select append元素无效或者未及时更新的问题
Sep 18 Javascript
vue 中 get / delete 传递数组参数方法
Mar 23 Vue.js
实用框架(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中time(),date(),mktime()区别介绍
2013/09/28 PHP
php操作csv文件代码实例汇总
2014/09/22 PHP
php基于mcrypt的加密解密实例
2014/10/27 PHP
laravel 4安装及入门图文教程
2014/10/29 PHP
PHP rsa加密解密使用方法
2015/04/27 PHP
PHP中抽象类、接口的区别与选择分析
2016/03/29 PHP
认识延迟时间为0的setTimeout
2008/05/16 Javascript
javascript SocialHistory 检查访问者是否访问过某站点
2008/08/02 Javascript
扩展IE中一些不兼容的方法如contains、startWith等等
2014/01/09 Javascript
jQuery中[attribute^=value]选择器用法实例
2014/12/31 Javascript
jQuery中parentsUntil()方法用法实例
2015/01/07 Javascript
JS操作HTML自定义属性的方法
2015/02/10 Javascript
Javascript闭包(Closure)详解
2015/05/05 Javascript
自定义刻度jQuery进度条及插件
2015/09/02 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
2015/12/14 Javascript
JS实现关闭当前页而不弹出提示框的方法
2016/06/22 Javascript
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
2017/04/10 jQuery
浅谈ajax在jquery中的请求和servlet中的响应
2018/01/22 jQuery
Koa 使用小技巧(小结)
2018/10/22 Javascript
js实现简单掷骰子效果
2019/10/24 Javascript
Python 除法小技巧
2008/09/06 Python
Python中的ctime()方法使用教程
2015/05/22 Python
Python处理文本文件中控制字符的方法
2017/02/07 Python
python实现下载pop3邮件保存到本地
2018/06/19 Python
Python常见数字运算操作实例小结
2019/03/22 Python
Python使用matplotlib绘制Logistic曲线操作示例
2019/11/28 Python
Python 整行读取文本方法并去掉readlines换行\n操作
2020/09/03 Python
python 实现关联规则算法Apriori的示例
2020/09/30 Python
Hotels.com英国:全球领先的酒店住宿提供商
2019/01/24 全球购物
Stokke美国官方网店:高级儿童家具、推车、汽车座椅和配件
2020/06/06 全球购物
法国亚马逊官方网站:Amazon.fr
2020/12/19 全球购物
审计工作个人的自我评价
2013/12/25 职场文书
毕业生大学生活自我总结
2014/01/31 职场文书
三潭印月的导游词
2015/02/12 职场文书
药店收银员岗位职责
2015/04/07 职场文书
MySQL七大JOIN的具体使用
2022/02/28 MySQL