h5中的fileAPI的使用方法

用来把文件读入内存,并且读取文件中的数据。FileReader接口提供了一个异步API,使用该API可以在浏览器主线程中异步访问文件系统,读取文件中的数据。到目前文职,只有FF3.6+和Chrome6.0+实现了FileReader接口。
1、FileReader接口的方法

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

FileReader接口的方法
方法名 参数 描述
readAsBinaryString file 将文件读取为二进制编码
readAsText file,[encoding] 将文件读取为文本
readAsDataURL file 将文件读取为DataURL
abort (none) 终端读取操作
2、FileReader接口事件
FileReader接口包含了一套完整的事件模型,用于捕获读取文件时的状态。

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

<script type="text/javascript"> 
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(){ 
    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 id="result" name="result"></div>  
首先,需要在 HTML 添加一个 input 元素,用于选择要上传的视频文件: ```html <input type="file" name="video" id="video-input"/> ``` 然后,在 JavaScript ,我们可以监听 input 元素的 change 事件,获取用户选择的视频文件,并将其预览在页面上: ```javascript const videoInput = document.getElementById('video-input'); videoInput.addEventListener('change', function() { const videoFile = this.files[0]; const videoURL = URL.createObjectURL(videoFile); const previewContainer = document.getElementById('video-preview-container'); const previewVideo = document.createElement('video'); previewVideo.src = videoURL; previewVideo.controls = true; previewContainer.appendChild(previewVideo); }); ``` 在上面的代码,我们使用了 URL.createObjectURL() 方法,将视频文件转换为可预览的 URL。然后,创建一个 video 元素,并将预览 URL 赋值给它的 src 属性,同时设置 controls 属性以显示视频控件。最后,将 video 元素添加到页面上的容器。 完整的 HTML 和 JavaScript 代码示例如下: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Upload Video Preview</title> </head> <body> <input type="file" name="video" id="video-input"/> <div id="video-preview-container"></div> <script> const videoInput = document.getElementById('video-input'); videoInput.addEventListener('change', function() { const videoFile = this.files[0]; const videoURL = URL.createObjectURL(videoFile); const previewContainer = document.getElementById('video-preview-container'); const previewVideo = document.createElement('video'); previewVideo.src = videoURL; previewVideo.controls = true; previewContainer.appendChild(previewVideo); }); </script> </body> </html> ``` 注意,以上代码只是一个简单的示例,实际应用还需要处理视频文件的上传和保存等操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值