上传图片预览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 相关文章推荐
Dom与浏览器兼容性说明
Oct 25 Javascript
js仿百度贴吧验证码特效实例代码
Jan 16 Javascript
JavaScript onkeydown事件入门实例(键盘某个按键被按下)
Oct 17 Javascript
Javascript技术栈中的四种依赖注入详解
Feb 23 Javascript
简单谈谈ES6的六个小特性
Nov 18 Javascript
详解vue-cli + webpack 多页面实例应用
Apr 25 Javascript
微信小程序 navbar实例详解
May 11 Javascript
Jquery EasyUI $.Parser
Jun 02 jQuery
angular4实现tab栏切换的方法示例
Oct 21 Javascript
微信小程序wx.previewImage预览图片实例详解
Dec 07 Javascript
微信小程序服务器日期格式化问题
Jan 07 Javascript
vue使用Sass时报错问题的解决方法
Oct 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
《DOTA3》开发工作已经开始 《DOTA3》将代替《DOTA2》
2021/03/06 DOTA
判断php数组是否为索引数组的实现方法
2013/06/13 PHP
Codeigniter注册登录代码示例
2014/06/12 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
2014/06/23 PHP
Thinkphp+smarty+uploadify实现无刷新上传
2015/07/30 PHP
在php的yii2框架中整合hbase库的方法
2018/09/20 PHP
Yii框架学习笔记之应用组件操作示例
2019/11/13 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
用javascript实现的支持lrc歌词的播放器
2007/05/17 Javascript
javascript使用eval或者new Function进行语法检查
2010/10/16 Javascript
动态标签 悬停效果 延迟加载示例代码
2013/11/21 Javascript
用javascript替换URL中的参数值示例代码
2014/01/27 Javascript
JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解
2016/06/14 Javascript
vue实现todolist单页面应用
2017/04/11 Javascript
node.js学习之事件模块Events的使用示例
2017/09/28 Javascript
Node.JS循环删除非空文件夹及子目录下的所有文件
2018/03/12 Javascript
使用Vuex实现一个笔记应用的方法
2018/03/13 Javascript
重学 JS:为啥 await 不能用在 forEach 中详解
2019/04/15 Javascript
如何利用node.js开发一个生成逐帧动画的小工具
2019/12/01 Javascript
[56:21]LGD vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python写的一个squid访问日志分析的小程序
2014/09/17 Python
Python入门之modf()方法的使用
2015/05/15 Python
Python导出DBF文件到Excel的方法
2015/07/25 Python
python 查找字符串是否存在实例详解
2017/01/20 Python
Python基于plotly模块实现的画图操作示例
2019/01/23 Python
Python HTML解析模块HTMLParser用法分析【爬虫工具】
2019/04/05 Python
python tkinter图形界面代码统计工具(更新)
2019/09/18 Python
Pytorch 实现权重初始化
2019/12/31 Python
GafasWorld哥伦比亚:网上购买眼镜
2017/11/28 全球购物
衰败城市英国官网:Urban Decay英国
2020/04/29 全球购物
文秘专业个人求职信
2013/12/22 职场文书
小学生感恩老师演讲稿
2014/08/28 职场文书
运动会加油稿20字
2014/11/15 职场文书
委托书格式要求
2015/01/28 职场文书
大学毕业论文致谢词
2015/05/14 职场文书
2015年小学语文工作总结
2015/05/25 职场文书