千家信息网

怎么利用html5 file api读取本地文件

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本文小编为大家详细介绍"怎么利用html5 file api读取本地文件",内容详细,步骤清晰,细节处理妥当,希望这篇"怎么利用html5 file api读取本地文件"文章能帮助大家解决疑惑,下面跟
千家信息网最后更新 2026年11月01日怎么利用html5 file api读取本地文件

本文小编为大家详细介绍"怎么利用html5 file api读取本地文件",内容详细,步骤清晰,细节处理妥当,希望这篇"怎么利用html5 file api读取本地文件"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

通过file类型的input获取FileList

或html5新增的可进行文件多选的multiple属性:

一般,我们都是给input:file绑上一个onchange事件,以便在用户选定文件后,马上进行读取文件等下一步操作:

//原生jsvar inputElement = document.getElementById("file-input");inputElement.addEventListener("change", handleFiles, false);function handleFiles() {  var fileList = this.files; }//jquery版$('#file-input').on('change', function() {    var fileList = this.files;});

通过拖放操作drop事件

首先要设定一个可供拖放的区域:

另外,为了能触发drop事件,我们必须阻止dragenter和dragover事件的默认行为:

var dropbox;dropbox = document.getElementById("dropbox");dropbox.addEventListener("dragenter", dragenter, false);dropbox.addEventListener("dragover", dragover, false);dropbox.addEventListener("drop", drop, false);function dragenter(e) {  e.stopPropagation();  e.preventDefault();}function dragover(e) {  e.stopPropagation();  e.preventDefault();}

然后,我们就可以在drop事件的callback中,获取到fileList:

function drop(e) {  e.stopPropagation();  e.preventDefault();  var dt = e.dataTransfer;  var files = dt.files;  handleFiles(files);}

怎么读取或利用file对象呢?

html5提供了两个方案:FileReader和ObjectUrl。

使用FileReader读取file对象

首先需要实例化FileReader对象:

var reader = new FileReader();

利用FileReader读取file对象是一个异步的过程,我们需要先为FileReader设置好load事件的callback,告知FileReader在读取到file对象的数据后应该进行什么进一步的操作:

reader.onload = function(e) {     document.getElementById("image").src = e.target.result; }

上面这段代码的意思是,FileReader读取到图片的数据后,把数据(DataUrl)放到的src属性里。

最后,就是通过FileReader不同的方法,来决定读取file对象数据后用什么数据格式来存放,并实施读取:

  1. readAsArrayBuffer(file) :读取file对象并存放为ArrayBuffer对象(ArrayBuffer对象是什么我暂时没有搞清,应该是一种为了高效存取数据而产生的数据结构)。

  2. readAsText(file [, 'UTF-8']) :以一般文本模式读取file对象,值得注意的是,利用第二个参数(可选)可指定字符编码。

  3. readAsDataURL(file) :读取file对象并存放为data: URL格式的字符串。

利用ObjectURL

ObjectURL相当于文件的一个临时路径,此临时路径可随时生成、随时释放,在本地浏览器使用起来时,与普通的url无异。

以把一张本地图片显示在页面上为例:

var img = document.createElement("img");img.src = window.URL.createObjectURL(file);

此时,src形如:blob:http://test.local.com/e03e8bbf-66ce-4fea-a8c8-772f9fdb4d40

用这个src就能让浏览器从本地读取图片。

这种方案相对用FileReader生成图片的base64编码并放到的src里来说,性能有了很大的提升。

比较这两种读取File对象的方案,FileReader适合用来上传文件,而ObjectURL则适合直接在浏览器进行操作,然后操作后再把处理后的数据进行上传,例如利用canvas截图或进行图片压缩等。当然,这一切都是要考虑兼容性的。

读到这里,这篇"怎么利用html5 file api读取本地文件"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

对象 文件 数据 事件 图片 文章 方案 浏览器 浏览 内容 字符 属性 格式 编码 路径 处理 生成 不同 妥当 很大 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 新华互联网科技学校 科技类互联网 互联网金融公司科技 奇士达互联网科技 互联网科技logo设计 互联网科技小额贷款 撒么互联网科技公司 江阴互联网智能科技产品进口 玉溪互联网科技怎么选 华夏恒生科技与互联网科技 互联网科技公司营业执照怎么办理 伊宁互联网科技做什么的 无锡工业互联网科技有限公司 广州百诚互联网科技有限公司官网 本届互联网大会上的黑科技 广东鹅鹅鹅互联网科技有限公司 互联网科技企业商标注意事项 承德科技产业互联网平台 互联网的黑科技实验室 互联网企业和网络科技有限公司 互联网 新科技 互联网公司会议桌创意科技软装饰 互联网科技寓意 以后互联网后是啥科技 浙江互联网科技研学营 昊天互联网科技有限公司 洛阳共同富裕互联网科技有限公司 互联网科技和法律行业 互联网领先科技宣传片 神州科技互联网有限公司
0