html5中文学习网

您的位置: 首页 > html5教程 > 高级应用 » 正文

Html5 FileReader实现即时上传图片功能实例代码_html5教程技巧

[ ] 已经帮助:人解决问题
这篇文章主要介绍了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先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助