关于H5里的API,上传图片预览功能
2024-10-18 07:22:10
FileReader:读取本地图片文件并显示
写在开头
之前公司要求做一个H5页面,功能是照相和选择相册相片,并且能在屏幕上预览。然后我就傻里吧唧的各种找插件,因为有些插件不适配手机的型号,安卓机基本死掉,苹果有时候也会出点小bug(会闪退)。那是最后的解决方案是不显示图片了,把选择的链接上传就好了。知道今天我才发现Html5里面有个能上传图片的API,怎么不上天!?
接下来就讲讲这个怎么实现
也不多说废话,先放代码再讲解
HTML:
<p>
<label>请选择一个图像文件:</label>
<input type="file" id="file_input" /> 选择图片的input按钮
</p>
<div id="rrr"></div>//拿来放图片用的
js:
var aaa = document.getElementById("rrr"); //获取显示图片的div元素
var input = document.getElementById("file_input"); //获取选择图片的input元素 //这边是判断本浏览器是否支持这个API。
if(typeof FileReader==='undefined'){
aaa.innerHTML = "抱歉,你的浏览器不支持 FileReader";
input.setAttribute('disabled','disabled');
}else{
input.addEventListener('change',readFile,false); //如果支持就监听改变事件,一旦改变了就运行readFile函数。
} function readFile(){
var file = this.files[0]; //获取file对象
//判断file的类型是不是图片类型。
if(!/image\/\w+/.test(file.type)){
alert("文件必须为图片!");
return false;
} var reader = new FileReader(); //声明一个FileReader实例
reader.readAsDataURL(file); //调用readAsDataURL方法来读取选中的图像文件
//最后在onload事件中,获取到成功读取的文件内容,并以插入一个img节点的方式显示选中的图片
reader.onload = function(e){
aaa.innerHTML = '<img src="'+this.result+'" alt=""/>'
}
}
最新文章
- 配置Chrome支持本地(file协议)的AJAX请求
- html图标插件
- jstl catch if choose标签
- oracle ebs应用产品安全性-交叉验证规则
- 从头学Qt Quick(1) --体验快速构建动态效果界面
- 连续值的CART(分类回归树)原理和实现
- Apache同时支持PHP和Python的配置方法
- java如何产生随机数
- (C/C++) Interview in English - Class
- [译]rabbitmq 2.4 Multiple tenants: virtual hosts and separation
- eclipse 32位和64位的jre
- Bootstrap入门(九)组件3:按钮组
- Flash设置(各种版本浏览器包括低版本IE)
- javascript中new Date()存在的兼容性问题
- HBuild 连接安卓手机
- 在threejs中添加两个场景和相机是需要注意render的参数设置
- BoundingBoxUV与BoundingBoxXYZ
- [转]Handsontable对单元格的操作
- kendo grid应用经验总结
- Spring 多数据源 @Transactional 注解事务管理