首页 > 代码库 > HTML5读取本地文件 FileReader API接口

HTML5读取本地文件 FileReader API接口

1、FileReader接口的方法

FileReader接口有4个方法,其中3个用来读取文件,另一个用来中断读取。无论读取成功或失败,方法并不会返回读取结果,这一结果存储在result属性中。

FileReader接口的方法
方法名参数描述
readAsBinaryStringfile将文件读取为二进制编码
readAsTextfile,[encoding]将文件读取为文本
readAsDataURLfile将文件读取为DataURL
abort(none)终端读取操作

 

 

 

 

 

 

2、FileReader接口事件

FileReader接口包含了一套完整的事件模型,用于捕获读取文件时的状态。

FileReader接口的事件
事件描述
onabort中断
onerror出错
onloadstart开始
onprogress正在读取
onload成功读取
onloadend读取完成,无论成功失败

 

 

 

 

 

 

 

 

3、FileReader接口的使用

//判断浏览器是否支持FileReader接口  if(typeof FileReader == ‘undefined‘){      result.InnerHTML="<p>你的浏览器不支持FileReader接口!</p>";      //使选择控件不可操作      file.setAttribute("disabled","disabled");  }  

 

function readAsDataURL(){      //检验是否为图像文件      var file = document.getElementById("file").files[0];      if(!/image\/\w+/.test(file.type)){          alert("看清楚,这个需要图片!");          return false;      }      var reader = new FileReader();      //将文件以Data URL形式读入页面      reader.readAsDataURL(file);      reader.onload=function(e){          var result=document.getElementById("result");          //显示文件          result.innerHTML=‘<img src="http://www.mamicode.com/‘ + this.result +‘"  />‘;      }  }  

  

function readAsBinaryString(){      var file = document.getElementById("file").files[0];      var reader = new FileReader();      //将文件以二进制形式读入页面      reader.readAsBinaryString(file);      reader.onload=function(f){          var result=document.getElementById("result");          //显示文件          result.innerHTML=this.result;      }  }

  

function readAsText(){      var file = document.getElementById("file").files[0];      var reader = new FileReader();      //将文件以文本形式读入页面      reader.readAsText(file);      reader.onload=function(f){          var result=document.getElementById("result");          //显示文件          result.innerHTML=this.result;      }  } 

  

实例--demo

<!doctype html><html><head>  <title>文件上传</title>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">    <meta name="description" content="">    <meta name="viewport" content="width=device-width, initial-scale=1.0,minimum-scale=1.0, maximum-scale=1.0,user-scalable=no"></head><body> <script>   function readLocalFile () {		//alert("start...");		var localFile = document.getElementById("uploadFile").files[0];		//alert(uploadFile);		//alert(localFile.name);		//alert(localFile.type);		//alert(localFile.size);		var reader = new FileReader();		//Uncaught SyntaxError:Unexpected identifier		var content;		reader.onload = function(event) {			content = event.target.result;			//alert(content);						document.getElementById("img").src = http://www.mamicode.com/content;"fileContent").value = http://www.mamicode.com/content;"File could not be read! Code " + event.target.error.code);		}		//reader.readAsText(localFile,"UTF-8");				content = reader.readAsDataURL(localFile,"UTF-8");		//	} </script>     <section>		<input type="file" id="uploadFile" onchange="readLocalFile()";/>		<div><img src="" id="img"/></div>				<div><textarea id="fileContent" rows="30" cols="60"></textarea></div>	</section>	</body></html>

  

  

 

HTML5读取本地文件 FileReader API接口