<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>图片预览</title>
</head>
<body>
<!--
文件上传在现代浏览器是基于FileReader API
基于浏览器的安全策略,file标签在现在浏览器中已获取不到真实路径。而低版本ie可以获取到真实路径
FileReader有四种读取文件的方式
1.readAsBinaryString读取为二进制码
2.readAsDataURL 读取为DataURL
3.readAsText读取为文本
4.readAsArrayBuffer 读取为队列缓存
图片上传后的需求,需要将图片读取为DataURL,DataURL的固定格式,
例如:data:[文件格式];base64,[文本流base64编码]
1.jpg格式: data:image/jpeg;base64,/9j/4...
2.png:data:image/png;base64,iVBORw...
3.gif:data:image/gif;base64,R0IGOD...
-->
<input id="files" type="file" οnchange="previewImage(this,'prvid')",multiple="multiple"/>
<div id="prvid">预览容器</div>
</body>
<script type="text/javascript">
function previewImage(file,prvid){
/*
file:file控件
prvid:图片预览容器
*/
var tip = "Expect jpg or png or gif!";
var filters = {
"jpeg":"/9j/4",
"gif":"R0IGOD",
"png":"iVBORw"
};
var prvbox = document.getElementById(prvid);
prvbox.innerHTML = "";
//浏览器支持FileReader
if(window.FileReader){
for(var i=0,f;f=file.files[i];i++){
var fr = new FileReader();
fr.onload = function(e){
var src = e.target.result;
//验证没通过
if(!validateImg(src)){
alert(tip);
}else{
//验证通过
showPrvImg(src);
}
};
fr.readAsDataURL(f);
}
//浏览器不支持FileReader
}else{
if(!/\.jpg$|\.png$|\.gif$/i.test(file.value)){
alert(tip);
}else{
showPrvImg(file.value);
}
}
//验证图片
function validateImg(data){
var pos = data.indexOf(",")+1;
for(var e in filters){
if(data.indexOf(filters[e])===pos){
return e;
}
}
return null;
}
//展示图片
function showPrvImg(src){
var img = document.createElement("img");
img.src = src;
prvbox.appendChild(img);
}
}
</script>
</html>
【Js应用实例】图片预览
原创
©著作权归作者所有:来自51CTO博客作者wx6392ac4fd4877的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
JS选择图片获取base64编码预览图片
通过将图片转为data url的base64格式编码,实现直接预览图片
图片预览 base64 dataurl 图片转base64 -
javaweb 项目pdf.js和print.js 实现pdf预览和批量打印
pdf文件预览,直接批量打印,前后端代码实现
文件流 压缩版 官网 pdfjs printjs -
js图片预览
js图片预览
系统运维 -
js上传图片后预览
[code="java"]js上传图片后预览 #picshow { filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod
Microsoft XHTML Blog HTML html -
单个图片上传 js 预览图片 功能
方法1、 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w
xhtml javascript ViewUI html HTML -
js 产品图片放大预览
js 产品图片放大预览
js JavaScript ViewUI 图片放大 -
js:s上次预览,上传图片预览,图片上传预览
By:DragonDean
html javascript microsoft 图片上传 上传 -
js上传图片预览
html 如果有头像了,显示头像 没有为空
php 上传 赋值 用户名 composer