上传图片预览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 相关文章推荐
jQuery学习笔记(3)--用jquery(插件)实现多选项卡功能
Apr 08 Javascript
js使下拉列表框可编辑不止是选择
Dec 12 Javascript
javascript异步编程的4种方法
Feb 19 Javascript
js对象内部访问this修饰的成员函数示例
Apr 27 Javascript
JS返回iframe中frameBorder属性值的方法
Apr 01 Javascript
artDialog+plupload实现多文件上传
Jul 19 Javascript
详解javascript立即执行函数表达式IIFE
Feb 13 Javascript
webpack学习笔记之优化缓存、合并、懒加载
Aug 24 Javascript
Vue自定义指令实现checkbox全选功能的方法
Feb 28 Javascript
Vue CLI3 开启gzip压缩文件的方式
Sep 30 Javascript
jQuery实现的记住帐号密码功能完整示例
Aug 03 jQuery
微信小程序实现树莓派(raspberry pi)小车控制
Feb 12 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
ThinkPHP模板判断输出Empty标签用法详解
2014/06/30 PHP
PHP微信公众号自动发送红包API
2016/06/01 PHP
laravel5.1 ajax post 传值_token示例
2019/10/24 PHP
JavaScript Konami Code 实现代码
2009/07/29 Javascript
checkbox全选/取消全选以及checkbox遍历jQuery实现代码
2009/12/02 Javascript
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
2011/07/04 Javascript
Eval and new funciton not the same thing
2012/12/27 Javascript
深入理解javascript的执行顺序
2014/04/04 Javascript
js实现的黑背景灰色二级导航菜单效果代码
2015/08/24 Javascript
jQuery+CSS实现的网页二级下滑菜单效果
2015/08/25 Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
2016/08/10 Javascript
PHP获取当前页面完整URL的方法
2016/12/02 Javascript
清除浏览器缓存的几种方法总结(必看)
2016/12/09 Javascript
php简单数据库操作类的封装
2017/06/08 Javascript
Vue 中使用 CSS Modules优雅方法
2018/04/09 Javascript
浅谈Vue.js组件(二)
2019/04/09 Javascript
Vue路由守卫及页面登录权限控制的设置方法(两种)
2020/03/31 Javascript
vue实现移动端拖动排序
2020/08/21 Javascript
python中管道用法入门实例
2015/06/04 Python
实例解析Python设计模式编程之桥接模式的运用
2016/03/02 Python
python3.5+tesseract+adb实现西瓜视频或头脑王者辅助答题
2018/01/17 Python
Python 实现还原已撤回的微信消息
2019/06/18 Python
python list转置和前后反转的例子
2019/08/26 Python
Python socket处理client连接过程解析
2020/03/18 Python
python高级特性简介
2020/08/13 Python
基于Python正确读取资源文件
2020/09/14 Python
用CSS3实现Win8风格的方格导航菜单效果
2013/04/10 HTML / CSS
Evisu官方网站:日本牛仔品牌,时尚街头设计风格
2016/12/30 全球购物
营销专业应届生求职信
2013/11/26 职场文书
企业宣传口号
2014/06/12 职场文书
迟到检讨书
2015/01/26 职场文书
外国人来华邀请函
2015/01/31 职场文书
2015年政风行风工作总结
2015/04/21 职场文书
Vue.js中v-for指令的用法介绍
2022/03/13 Vue.js
《游戏王:大师决斗》将推出新卡牌包4月4日上线
2022/03/31 其他游戏
python模拟浏览器 使用selenium进入好友QQ空间并留言
2022/04/12 Python