设为首页 加入收藏

TOP

JavaScript 中的FileReader对象实现上传图片本地预览(一)
2017-11-28 09:14:14 】 浏览:563
Tags:JavaScript FileReader 对象 实现 上传 图片 本地 预览

方法一:使用jsFileReader对象


1FileReader对象简介


1.检测浏览器对FileReader的支持 


if(window.FileReader) {


     var fr = new FileReader();


     // add your code here


 }


 else {


     alert("Not supported by your browser!");


 }


 


调用FileReader对象的方法 


FileReader 的实例拥有 4 个方法,其中 3 个用以读取文件,另一个用来中断读取。下面的表格列出了这些方法以及他们的参数和功能,


需要注意的是 ,无论读取成功或失败,方法并不会返回读取结果,这一结果存储在 result属性中。


readAsText该方法有两个参数,其中第二个参数是文本的编码方式,默认值为 UTF-8。这个方法非常容易理解,将文件以文本方式读取,读取的结果即是这个文本文件中的内容。
readAsBinaryString该方法将文件读取为二进制字符串,通常我们将它传送到后端,后端可以通过这段字符串存储文件。
readAsDataURL这是例子程序中用到的方法,该方法将文件读取为一段以 data: 开头的字符串,这段字符串的实质就是 Data URL,Data URL是一种将小文件直接嵌入文档的方案。这里的小文件通常是指图像与 html 等格式的文件。(其中base64的方式就是由此来获得的。。)


2. FileReader处理事件简介


FileReader 包含了一套完整的事件模型,用于捕获读取文件时的状态,下面这个表格归纳了这些事件。


文件一旦开始读取,无论成功或失败,实例的 result 属性都会被填充。如果读取失败,则 result 的值为 null ,否则即是读取的结果,绝大多数的程序都会在成功读取文件的时候,抓取这个值。


fr.onload = function() { 


    this.result; 


}; 


 


例子1:


<!DOCTYPE html>


<html lang="en">


<head>


    <meta charset="UTF-8">


    <title>FileReader</title>


</head>


<body>


    <p> 


    <label>请选择一个文件:</label> 


        <input type="file" id="file" /> 


        <input type="button" value="读取图像" onclick="readAsDataURL()" /> 


        <input type="button" value="读取二进制数据" onclick="readAsBinaryString()" /> 


        <input type="button" value="读取文本文件" onclick="readAsText()" /> 


    </p> 


    <div id="result" name="result"></div> 


</body>


</html>


<script type="text/java script"> 


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


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


//判断浏览器是否支持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="' + this.result +'" alt="" />'; 


    } 



 


function readAsBinaryString

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇PHP中递归的实现(附例子) 下一篇Shell脚本实现文件遍历和删除操作

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目