HTML5先行者高级交流群
欢迎加入学习讨论
专注前端,专注网页设计制作及网站开发项目 - (低价承接网站开发项目) QQ:370158739
加入收藏
RSS
首页
JS下载
CSS3手册
Json在线解析
html5教程
网站及特效实例
视频教程
html5资讯
网络编程
html5书籍
HTML5演示
论坛
入门教程
高级应用
滚动新闻
html5实验
javascript特效
Photoshop教程及网页素材
jquery特效
html5视频教程
CSS3视频教程
JS视频教程
JUQERY视频教程
Bootstrap视频教程
html5video
微信服务号开发教程
最新资讯
最新动态
IT动态
ASP编程
PHP编程
正则表达式
AJAX相关
ASP.NET
JSP编程
Flex
脚本加解密
网页编辑器
相关技巧
黑客相关
网页播放器
其它综合
java教程
您的位置
:
首页
>
html5教程
>
高级应用
» 正文
Html5 FileReader实现即时上传图片功能实例代码_html5教程技巧
2015-01-04 13:08:38
[
小
大
]
已经帮助:
人解决问题
这篇文章主要介绍了Html5 FileReader实现即时上传图片功能,因为项目只要求在ie9以上,所以就没有写出ie8的啦,需要的朋友可以参考下
下面的是在ie9下面实现的预览,跟ie8还是不一样的,不过我记得貌似ie8好像也是利用了fiter的功能,因为项目只要求在ie9以上,所以就没有写出ie8的啦
nm3HTML5中文学习网 - HTML5先行者学习网
复制代码
代码如下:
nm3HTML5中文学习网 - HTML5先行者学习网
<!DOCTYPE html>
nm3HTML5中文学习网 - HTML5先行者学习网
<html lang="en">
nm3HTML5中文学习网 - HTML5先行者学习网
<head>
nm3HTML5中文学习网 - HTML5先行者学习网
<meta charset="UTF-8">
nm3HTML5中文学习网 - HTML5先行者学习网
<title>Document</title>
nm3HTML5中文学习网 - HTML5先行者学习网
</head>
nm3HTML5中文学习网 - HTML5先行者学习网
<body>
nm3HTML5中文学习网 - HTML5先行者学习网
<p><style type="text/css">
nm3HTML5中文学习网 - HTML5先行者学习网
#kk{
nm3HTML5中文学习网 - HTML5先行者学习网
width:400px;
nm3HTML5中文学习网 - HTML5先行者学习网
height:400px;
nm3HTML5中文学习网 - HTML5先行者学习网
overflow: hidden;
nm3HTML5中文学习网 - HTML5先行者学习网
}
nm3HTML5中文学习网 - HTML5先行者学习网
#preview_wrapper{
nm3HTML5中文学习网 - HTML5先行者学习网
width:300px;
nm3HTML5中文学习网 - HTML5先行者学习网
height:300px;
nm3HTML5中文学习网 - HTML5先行者学习网
background-color:#CCC;
nm3HTML5中文学习网 - HTML5先行者学习网
overflow: hidden;
nm3HTML5中文学习网 - HTML5先行者学习网
}
nm3HTML5中文学习网 - HTML5先行者学习网
#preview_fake{ /* 该对象用于在IE下显示预览图片 */
nm3HTML5中文学习网 - HTML5先行者学习网
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);
nm3HTML5中文学习网 - HTML5先行者学习网
width:300px;
nm3HTML5中文学习网 - HTML5先行者学习网
overflow: hidden;
nm3HTML5中文学习网 - HTML5先行者学习网
}
nm3HTML5中文学习网 - HTML5先行者学习网
#preview_size_fake{ /* 该对象只用来在IE下获得图片的原始尺寸,无其它用途 */
nm3HTML5中文学习网 - HTML5先行者学习网
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image);
nm3HTML5中文学习网 - HTML5先行者学习网
width:300px;
nm3HTML5中文学习网 - HTML5先行者学习网
visibility:hidden;
nm3HTML5中文学习网 - HTML5先行者学习网
overflow: hidden;
nm3HTML5中文学习网 - HTML5先行者学习网
}
nm3HTML5中文学习网 - HTML5先行者学习网
#preview{ /* 该对象用于在FF下显示预览图片 */
nm3HTML5中文学习网 - HTML5先行者学习网
width:300px;
nm3HTML5中文学习网 - HTML5先行者学习网
height:300px;
nm3HTML5中文学习网 - HTML5先行者学习网
overflow: hidden;
nm3HTML5中文学习网 - HTML5先行者学习网
}
nm3HTML5中文学习网 - HTML5先行者学习网
</style><script type="text/javascript">
nm3HTML5中文学习网 - HTML5先行者学习网
function onUploadImgChange(sender){
nm3HTML5中文学习网 - HTML5先行者学习网
if( !sender.value.match( /.jpg|.gif|.png|.bmp/i ) ){
nm3HTML5中文学习网 - HTML5先行者学习网
alert('图片格式无效!');
nm3HTML5中文学习网 - HTML5先行者学习网
return false;
nm3HTML5中文学习网 - HTML5先行者学习网
}
nm3HTML5中文学习网 - HTML5先行者学习网
var objPreview = document.getElementById('preview');
nm3HTML5中文学习网 - HTML5先行者学习网
var objPreviewFake = document.getElementById('preview_fake');
nm3HTML5中文学习网 - HTML5先行者学习网
var objPreviewSizeFake = document.getElementById('preview_size_fake');
nm3HTML5中文学习网 - HTML5先行者学习网
if( sender.files && sender.files[0] ){ //这里面就是chrome和ff可以兼容的了
nm3HTML5中文学习网 - HTML5先行者学习网
objPreview.style.display = 'block';
nm3HTML5中文学习网 - HTML5先行者学习网
objPreview.style.width = 'auto';
nm3HTML5中文学习网 - HTML5先行者学习网
objPreview.style.height = 'auto';
nm3HTML5中文学习网 - HTML5先行者学习网
// Firefox 因安全性问题已无法直接通过 input[file].value 获取完整的文件路径
nm3HTML5中文学习网 - HTML5先行者学习网
objPreview.src = sender.files[0].getAsDataURL();
nm3HTML5中文学习网 - HTML5先行者学习网
}else if( objPreviewFake.filters ){
nm3HTML5中文学习网 - HTML5先行者学习网
// IE7,IE8 在设置本地图片地址为 img.src 时出现莫名其妙的后果
nm3HTML5中文学习网 - HTML5先行者学习网
//(相同环境有时能显示,有时不显示),因此只能用滤镜来解决
nm3HTML5中文学习网 - HTML5先行者学习网
// IE7, IE8因安全性问题已无法直接通过 input[file].value 获取完整的文件路径
nm3HTML5中文学习网 - HTML5先行者学习网
sender.select();
nm3HTML5中文学习网 - HTML5先行者学习网
sender.blur();
nm3HTML5中文学习网 - HTML5先行者学习网
var imgSrc = document.selection.createRange().text;
nm3HTML5中文学习网 - HTML5先行者学习网
objPreviewFake.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = imgSrc;
nm3HTML5中文学习网 - HTML5先行者学习网
objPreviewSizeFake.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = imgSrc;
nm3HTML5中文学习网 - HTML5先行者学习网
alert("已成功选择图片!");
nm3HTML5中文学习网 - HTML5先行者学习网
alert(objPreviewSizeFake.offsetWidth);
nm3HTML5中文学习网 - HTML5先行者学习网
autoSizePreview( objPreviewFake,objPreviewSizeFake.offsetWidth, objPreviewSizeFake.offsetHeight );
nm3HTML5中文学习网 - HTML5先行者学习网
objPreview.style.display = 'none';
nm3HTML5中文学习网 - HTML5先行者学习网
}
nm3HTML5中文学习网 - HTML5先行者学习网
}
nm3HTML5中文学习网 - HTML5先行者学习网
function onPreviewLoad(sender){
nm3HTML5中文学习网 - HTML5先行者学习网
autoSizePreview( sender, sender.offsetWidth, sender.offsetHeight );
nm3HTML5中文学习网 - HTML5先行者学习网
}
nm3HTML5中文学习网 - HTML5先行者学习网
function autoSizePreview( objPre, originalWidth, originalHeight ){
nm3HTML5中文学习网 - HTML5先行者学习网
var zoomParam = clacImgZoomParam( 300, 300, originalWidth, originalHeight );
nm3HTML5中文学习网 - HTML5先行者学习网
objPre.style.width = zoomParam.width + 'px';
nm3HTML5中文学习网 - HTML5先行者学习网
objPre.style.height = zoomParam.height + 'px';
nm3HTML5中文学习网 - HTML5先行者学习网
objPre.style.marginTop = zoomParam.top + 'px';
nm3HTML5中文学习网 - HTML5先行者学习网
objPre.style.marginLeft = zoomParam.left + 'px';
nm3HTML5中文学习网 - HTML5先行者学习网
}
nm3HTML5中文学习网 - HTML5先行者学习网
function clacImgZoomParam( maxWidth, maxHeight, width, height ){
nm3HTML5中文学习网 - HTML5先行者学习网
var param = { width:width, height:height, top:0, left:0 };
nm3HTML5中文学习网 - HTML5先行者学习网
if( width>maxWidth || height>maxHeight ){
nm3HTML5中文学习网 - HTML5先行者学习网
rateWidth = width / maxWidth;
nm3HTML5中文学习网 - HTML5先行者学习网
rateHeight = height / maxHeight;
nm3HTML5中文学习网 - HTML5先行者学习网
if( rateWidth > rateHeight ){
nm3HTML5中文学习网 - HTML5先行者学习网
param.width = maxWidth;
nm3HTML5中文学习网 - HTML5先行者学习网
param.height = height / rateWidth;
nm3HTML5中文学习网 - HTML5先行者学习网
}else{
nm3HTML5中文学习网 - HTML5先行者学习网
param.width = width / rateHeight;
nm3HTML5中文学习网 - HTML5先行者学习网
param.height = maxHeight;
nm3HTML5中文学习网 - HTML5先行者学习网
}
nm3HTML5中文学习网 - HTML5先行者学习网
}
nm3HTML5中文学习网 - HTML5先行者学习网
param.left = (maxWidth - param.width) / 2;
nm3HTML5中文学习网 - HTML5先行者学习网
param.top = (maxHeight - param.height) / 2;
nm3HTML5中文学习网 - HTML5先行者学习网
return param;
nm3HTML5中文学习网 - HTML5先行者学习网
}
nm3HTML5中文学习网 - HTML5先行者学习网
</script> <input name="localfile" type="file" id="localfile" size="28" onchange="onUploadImgChange(this)"/> <!--以下是预览图片用的-->
nm3HTML5中文学习网 - HTML5先行者学习网
<div id="kk">
nm3HTML5中文学习网 - HTML5先行者学习网
<div id="preview_wrapper">
nm3HTML5中文学习网 - HTML5先行者学习网
<div id="preview_fake">
nm3HTML5中文学习网 - HTML5先行者学习网
<img id="preview" src="" onload="onPreviewLoad(this)"/>
nm3HTML5中文学习网 - HTML5先行者学习网
</div>
nm3HTML5中文学习网 - HTML5先行者学习网
</div>
nm3HTML5中文学习网 - HTML5先行者学习网
<br/>
nm3HTML5中文学习网 - HTML5先行者学习网
<img id="preview_size_fake" />
nm3HTML5中文学习网 - HTML5先行者学习网
</div></p>
nm3HTML5中文学习网 - HTML5先行者学习网
</body>
nm3HTML5中文学习网 - HTML5先行者学习网
</html>
nm3HTML5中文学习网 - HTML5先行者学习网
来顶一下
返回首页
(责任编辑:)
推荐书籍
推荐资讯
html5及css3做的3D小
html5视频应用
友情链接:
联系人:QQ370158739
关于HTML5先行者
-
联系我们
-
广告服务
-
友情链接
-
网站地图
-
版权声明
-
人才招聘
-
帮助