php filereader,FileReader读取本地图片文件并显示

要想在页面上显示本地图片,以前我们通常的做法是将选择的图片文件上传至后端服务器,后端对其进行存储,再将图片的URL返回到前端,前端通过这个URL来显示图片。而HTML5的FileReader接口支持本地预览,FileReader接口主要是将文件读入内存,并提供相应的方法,来读取文件中的数据,当然就能显示本地图片不需上传了。

看完这篇文章后,你可以尝试制作一个拖拽和显示图片、编辑图片、最后上传的功能。

HTML

请选择一个图像文件:

Javascript

通过getElementById获取节点,判断浏览器的兼容性,对于不支持FileReader接口的浏览器将给出一个提示并禁用input,否则监听input的change事件。

var result = document.getElementById("result");

var input = document.getElementById("file_input");

if(typeof FileReader==='undefined'){

result.innerHTML = "抱歉,你的浏览器不支持 FileReader";

input.setAttribute('disabled','disabled');

}else{

input.addEventListener('change',readFile,false);

}

然后,当file_input的change事件触发时,调用函数readFile()。在readFile中,我们首先获取file对象,然后通过file的type属性来检测文件类型,我们当然只允许选择图像类型的文件,然后我们new一个FileReader实例,并调用readAsDataURL方法来读取选中的图像文件,最后在onload事件中,获取到成功读取的文件内容,并以插入一个img节点的方式显示选中的图片。

function readFile(){

var file = this.files[0];

if(!/image\/\w+/.test(file.type)){

alert("文件必须为图片!");

return false;

}

var reader = new FileReader();

reader.readAsDataURL(file);

reader.onload = function(e){

result.innerHTML = ''

}

}

完整页面代码

Document

请选择一个图像文件:

var result = document.getElementById("result");

var input = document.getElementById("file_input");

if(typeof FileReader==='undefined'){

result.innerHTML = "抱歉,你的浏览器不支持 FileReader";

input.setAttribute('disabled','disabled');

}else{

input.addEventListener('change',readFile,false);

}

function readFile(){

var file = this.files[0];

if(!/image\/\w+/.test(file.type)){

alert("文件必须为图片!");

return false;

}

var reader = new FileReader();

reader.readAsDataURL(file);

reader.onload = function(e){

result.innerHTML = ''

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值