首页 技术 正文
技术 2022年11月21日
0 收藏 574 点赞 3,577 浏览 1462 个字
<!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" onchange="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>
上一篇: Random问题
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,896
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,423
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,241
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,055
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,684
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,723