上传图片预览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 相关文章推荐
JavaScript 创建对象和构造类实现代码
Jul 30 Javascript
JavaScript 函数调用规则
Sep 14 Javascript
javascript重写alert方法的实例代码
Mar 29 Javascript
javascript实现多栏闭合展开式广告位菜单效果实例
Aug 05 Javascript
jQuery实现的无缝广告图片左右滚动功能详解
Dec 24 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
Mar 17 Javascript
JavaScript循环_动力节点Java学院整理
Jun 28 Javascript
js装饰设计模式学习心得
Feb 17 Javascript
JS实现为动态创建的元素添加事件操作示例
Mar 17 Javascript
在vue中使用v-bind:class的选项卡方法
Sep 27 Javascript
微信小程序项目总结之记账小程序功能的实现(包括后端)
Aug 20 Javascript
原生js滑动轮播封装
Jul 31 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
一个程序下载的管理程序(四)
2006/10/09 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
jQuery load方法用法集锦
2011/12/06 Javascript
JavaScript中几个重要的属性(this、constructor、prototype)介绍
2013/05/19 Javascript
js计算字符串长度包含的中文是utf8格式
2013/10/15 Javascript
动态创建script标签实现跨域资源访问的方法介绍
2014/02/28 Javascript
Node.js模块加载详解
2014/08/16 Javascript
深入分析下javascript中的[]()+!
2015/07/07 Javascript
JavaScript类型系统之Object详解
2016/01/07 Javascript
利用JS轻松实现获取表单数据
2016/12/06 Javascript
详解Angular中的自定义服务Service、Provider以及Factory
2017/04/22 Javascript
Vue组件之高德地图地址选择功能的实例代码
2019/06/21 Javascript
微信小程序里引入SVG矢量图标的方法
2019/09/20 Javascript
[02:36]DOTA2英雄基础教程 斯拉克
2013/11/29 DOTA
跟老齐学Python之玩转字符串(2)
2014/09/14 Python
Python获取服务器信息的最简单实现方法
2015/03/05 Python
Python循环语句中else的用法总结
2016/09/11 Python
使用Python写一个小游戏
2018/04/02 Python
python去除拼音声调字母,替换为字母的方法
2018/11/28 Python
Python中的集合介绍
2019/01/28 Python
Python redis操作实例分析【连接、管道、发布和订阅等】
2019/05/16 Python
python实现翻转棋游戏(othello)
2019/07/29 Python
python模块导入的方法
2019/10/24 Python
Selenium python时间控件输入问题解决方案
2020/07/22 Python
python 中的命名空间,你真的了解吗?
2020/08/19 Python
Python字符串及文本模式方法详解
2020/09/10 Python
python爬取天气数据的实例详解
2020/11/20 Python
党员培训思想汇报
2014/01/07 职场文书
给交警的表扬信
2014/01/12 职场文书
购房意向书
2014/04/01 职场文书
小学生清明节演讲稿
2014/09/05 职场文书
初中数学课堂教学反思
2016/02/17 职场文书
预备党员的思想汇报,你真的会写吗?
2019/06/28 职场文书
接触艺术对孩子学习思维有益
2019/08/06 职场文书
导游词之晋城蟒河
2019/12/12 职场文书
Python OpenCV超详细讲解调整大小与图像操作的实现
2022/04/02 Python