fileReader方法实例

该示例展示了如何使用JavaScript的FileReader API来读取文件,包括以Data URL形式读取图像、以二进制字符串形式读取文件以及以文本形式读取文件。通过在页面上设置按钮,用户可以选择不同方式读取文件并显示结果。
<!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>

在JavaScript中,FileReader是用于读取文件内容的核心API,其操作是异步的,需要通过事件处理结果。以下是一些常见的FileReader方法及其使用示例: ### readAsText() 该方法用于以文本格式读取Blob对象的数据,读取完成后,`result` 属性将返回文件内容的文本字符串。此方法的第一个参数是代表文件的Blob实例,第二个参数是可选的,表示文本编码,默认为UTF - 8 [^4]。 ```javascript const input = document.createElement('input'); input.type = 'file'; document.body.appendChild(input); input.addEventListener('change', function() { const file = this.files[0]; if (file) { const reader = new FileReader(); reader.onload = function(e) { const result = reader.result; console.log(result); }; reader.readAsText(file, 'UTF-8'); } }); ``` ### readAsDataURL() 此方法把目标文件转为地址,通常用于处理图片等文件。例如文件来自于上传组件时可以这样使用 [^2]: ```javascript const input = document.createElement('input'); input.type = 'file'; const myimg = document.createElement('img'); document.body.appendChild(input); document.body.appendChild(myimg); input.addEventListener('change', function() { const f = this; const reader = new FileReader(); reader.readAsDataURL(f.files[0]); reader.onload = function () { myimg.src = reader.result; }; }); ``` ### readAsArrayBuffer() 可以将Blob对象的数据转换为ArrayBuffer。使用示例如下: ```javascript const input = document.createElement('input'); input.type = 'file'; document.body.appendChild(input); input.addEventListener('change', function() { const file = this.files[0]; if (file) { const reader = new FileReader(); reader.onload = function(e) { const result = reader.result; console.log(result); }; reader.readAsArrayBuffer(file); } }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值