上传图片预览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表单验证代码
Aug 02 Javascript
什么是JavaScript
Aug 13 Javascript
js Function类型
Dec 04 Javascript
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
May 28 Javascript
JS实现图片横向滚动效果示例代码
Sep 04 Javascript
jQuery中before()方法用法实例
Dec 25 Javascript
JQuery判断checkbox是否选中及其它复选框操作方法合集
Jun 01 Javascript
javascript基本算法汇总
Mar 09 Javascript
javascript构造函数以及原型对象的理解
Jan 13 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图和饼图的组合图效果示例【附demo源码下载】
Mar 09 Javascript
微信小程序自定义组件之可清除的input组件
Jul 17 Javascript
jquery UI实现autocomplete在获取焦点时得到显示列表功能示例
Jun 04 jQuery
实用框架(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
让这部DC动画新作刷新你的认知
2020/03/03 欧美动漫
用 Composer构建自己的 PHP 框架之构建路由
2014/10/30 PHP
深入理解PHP中mt_rand()随机数的安全
2017/10/12 PHP
Highslide.js是一款基于js实现的网页中图片展示插件
2020/03/30 Javascript
Javascript 面向对象特性
2009/12/28 Javascript
用JS控制回车事件的代码
2011/02/20 Javascript
js实现具有高亮显示效果的多级菜单代码
2015/09/01 Javascript
jQuery实现的个性化返回底部与返回顶部特效代码
2015/10/30 Javascript
类似于QQ的右滑删除效果的实现方法
2016/10/16 Javascript
Vue.js系列之项目搭建(1)
2017/01/03 Javascript
Angular.Js中过滤器filter与自定义过滤器filter实例详解
2017/05/08 Javascript
详解Angular 4 表单快速入门
2017/06/05 Javascript
js脚本编写简单刷票投票系统
2017/06/27 Javascript
JavaScript中的return布尔值的用法和原理解析
2017/08/14 Javascript
Vue2.X 通过AJAX动态更新数据
2018/07/17 Javascript
Node.js命令行/批处理中如何更改Linux用户密码浅析
2018/07/22 Javascript
jquery实现下载图片功能
2019/07/18 jQuery
react实现复选框全选和反选组件效果
2020/08/25 Javascript
[56:00]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第二场
2018/04/10 DOTA
Python抓取百度查询结果的方法
2015/07/08 Python
十条建议帮你提高Python编程效率
2016/02/16 Python
flask使用session保存登录状态及拦截未登录请求代码
2018/01/19 Python
使用python读取.text文件特定行的数据方法
2019/01/28 Python
Python操作配置文件ini的三种方法讲解
2019/02/22 Python
python opencv鼠标事件实现画框圈定目标获取坐标信息
2020/04/18 Python
如何在pycharm中安装第三方包
2020/10/27 Python
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
印尼最大的网上书店:Gramedia.com
2018/09/13 全球购物
父亲八十大寿答谢词
2014/01/23 职场文书
法人代表任命书范本
2014/06/05 职场文书
机关干部个人对照检查材料思想汇报
2014/09/28 职场文书
现实表现材料范文
2014/12/23 职场文书
污水处理保证书
2015/05/09 职场文书
2015年环境整治工作总结
2015/05/22 职场文书
校园之声广播稿
2015/08/18 职场文书
SQL实现LeetCode(180.连续的数字)
2021/08/04 MySQL