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=""/>'
}
}

最新文章

  1. 配置Chrome支持本地(file协议)的AJAX请求
  2. html图标插件
  3. jstl catch if choose标签
  4. oracle ebs应用产品安全性-交叉验证规则
  5. 从头学Qt Quick(1) --体验快速构建动态效果界面
  6. 连续值的CART(分类回归树)原理和实现
  7. Apache同时支持PHP和Python的配置方法
  8. java如何产生随机数
  9. (C/C++) Interview in English - Class
  10. [译]rabbitmq 2.4 Multiple tenants: virtual hosts and separation
  11. eclipse 32位和64位的jre
  12. Bootstrap入门(九)组件3:按钮组
  13. Flash设置(各种版本浏览器包括低版本IE)
  14. javascript中new Date()存在的兼容性问题
  15. HBuild 连接安卓手机
  16. 在threejs中添加两个场景和相机是需要注意render的参数设置
  17. BoundingBoxUV与BoundingBoxXYZ
  18. [转]Handsontable对单元格的操作
  19. kendo grid应用经验总结
  20. Spring 多数据源 @Transactional 注解事务管理

热门文章

  1. 安卓异步任务AsynTask(1)
  2. centos 6.5中安装hadoop2.2
  3. OSG实现场景漫游(转载)
  4. jQuery学习笔记之jQuery.fn.init()的参数分析
  5. DataTimePicker
  6. noip2016天天爱跑步
  7. Spring mvc 数据验证
  8. spring mvc 返回页面数据
  9. 关于在官网上下载Eclipse遇到的问题!!
  10. HDU5842