HTML5 文件API

<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<title>fileReader方法示例</title>
</head>
<script language=javascript>
var result=document.getElementById("result");
var file=document.getElementById("file");
if (typeof FileReader == 'undefined' )
{
   result.innerHTML = "<p>抱歉,你的浏览器不支持 FileReader</p>";
   file.setAttribute( 'disabled','disabled' );
}
//将文件以Data URL形式进行读入页面
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()
{
    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;
    }
}
</script>
<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 name="result" id="result">
      <!-- 这里用来显示读取结果 -->
</div>

 

 

 

 

 

 

 

 

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>
            fileReader对象的事件先后顺序
        </title>
        <script language="javascript" type="text/javascript">
        var result=document.getElementById("result");
        var input=document.getElementById("input");
        if(typeof FileReader=='undefined')
        {
        result.innerHTML = "<p class='warn'>抱歉,你的浏览器不支持 FileReader<\/p>";
        input.setAttribute( 'disabled','disabled' );
        }
        function readFile()
        {
        var file = document.getElementById("file").files[0];
        var reader = new FileReader();
        reader.onload = function(e)
        {
        result.innerHTML = '<img src="'+this.result+'" alt=""/>'
        alert("load");
        }
        reader.onprogress = function(e)
        {
        alert("progress");
        }
        reader.onabort = function(e)
        {
        alert("abort");
        }
        reader.onerror = function(e)
        {
        alert("error");
        }
        reader.onloadstart = function(e)
        {
        alert("loadstart");
        }
        reader.onloadend = function(e)
        {
        alert("loadend");
        }
        reader.readAsDataURL(file);
        }
        </script>
    </head>
    <body>
        <p>
            <label>请选择一个图像文件:</label> <input type="file" id="file"> <input type="button" value="显示图像" onclick="readFile()">
        </p>
        <div name="result" id="result">
            <!-- 这里用来显示读取结果 -->
        </div>
    </body>
</html>

posted @ 2013-04-17 15:46  mguo  阅读(320)  评论(0编辑  收藏  举报