JS+HTML5 FileReader实现文件上传前本地预览功能

发布时间 - 2026-01-11 02:18:52    点击率:

HTML5之FileReader的使用

HTML5定义了FileReader作为文件API的重要成员用于读取文件,根据W3C的定义,FileReader接口提供了读取文件的方法和包含读取结果的事件模型。

FileReader的使用方式非常简单,可以按照如下步骤创建FileReader对象并调用其方法:

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

if(window.FileReader) { 
 var fr = new FileReader(); 
 // add your code here 
} 
else { 
 alert("Not supported by your browser!"); 
} 

2. 调用FileReader对象的方法

FileReader 的实例拥有 4 个方法,其中 3 个用以读取文件,另一个用来中断读取。下面的表格列出了这些方法以及他们的参数和功能,需要注意的是 ,无论读取成功或失败,方法并不会返回读取结果,这一结果存储在 result属性中。

eadAsText:该方法有两个参数,其中第二个参数是文本的编码方式,默认值为 UTF-8。这个方法非常容易理解,将文件以文本方式读取,读取的结果即是这个文本文件中的内容。

readAsBinaryString:该方法将文件读取为二进制字符串,通常我们将它传送到后端,后端可以通过这段字符串存储文件。

readAsDataURL:这是例子程序中用到的方法,该方法将文件读取为一段以 data: 开头的字符串,这段字符串的实质就是 Data URL,Data URL是一种将小文件直接嵌入文档的方案。这里的小文件通常是指图像与 html 等格式的文件。

下面通过一个上传图片预览和带进度条上传来展示FileReader的使用。

<script type="text/javascript"> 
 function showPreview(source) { 
  var file = source.files[0]; 
  if(window.FileReader) { 
  var fr = new FileReader(); 
  fr.onloadend = function(e) { 
   document.getElementById("portrait").src = e.target.result; 
  }; 
  fr.readAsDataURL(file); 
  } 
 } 
 </script> 
 <input type="file" name="file" onchange="showPreview(this)" /> 
<img id="portrait" src="" width="70" height="75"> 
if(!/image\/\w+/.test(file.type)){ 
 alert("请确保文件为图像类型"); 
 return false; 
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# HTML5  # FileReader  # 文件上传  # 本地预览  # javascript结合fileReader 实现上传图片  # JavaScript通过filereader接口读取文件  # JS中利用FileReader实现上传图片前本地预览功能  # JS+HTML5 FileReader对象用法示例  # JavaScript html5利用FileReader实现上传功能  # 原生js FileReader对象实现图片上传本地预览效果  # JavaScript使用FileReader实现图片上传预览效果  # 基于JavaScript FileReader上传图片显示本地链接  # JS中FileReader类实现文件上传及时预览功能  # JavaScript中的FileReader示例详解  # 这段  # 的是  # 后端  # 这是  # 他们的  # 这一  # 是一种  # 出了  # 是指  # 可以通过  # 第二个  # 即是  # 将它  # 需要注意  # 上传图片  # 值为  # 大家多多  # 文本文件  # 进度条  # 文档 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  Java遍历集合的三种方式  如何在不使用负向后查找的情况下匹配特定条件前的换行符  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  如何获取上海专业网站定制建站电话?  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  Laravel如何生成API文档?(Swagger/OpenAPI教程)  如何快速辨别茅台真假?关键步骤解析  如何在 React 中条件性地遍历数组并渲染元素  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  Laravel如何自定义分页视图?(Pagination示例)  如何快速使用云服务器搭建个人网站?  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  如何在万网自助建站中设置域名及备案?  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  Android实现代码画虚线边框背景效果  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  佛山网站制作系统,佛山企业变更地址网上办理步骤?  Mybatis 中的insertOrUpdate操作  html5的keygen标签为什么废弃_替代方案说明【解答】  原生JS实现图片轮播切换效果  网站制作免费,什么网站能看正片电影?  Laravel如何处理异常和错误?(Handler示例)  想要更高端的建设网站,这些原则一定要坚持!  javascript读取文本节点方法小结  linux top下的 minerd 木马清除方法  如何快速生成ASP一键建站模板并优化安全性?  b2c电商网站制作流程,b2c水平综合的电商平台?  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  java中使用zxing批量生成二维码立牌  Laravel如何实现API资源集合?(Resource Collection教程)  免费网站制作appp,免费制作app哪个平台好?  LinuxCD持续部署教程_自动发布与回滚机制  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  微信小程序 闭包写法详细介绍  如何用IIS7快速搭建并优化网站站点?  如何登录建站主机?访问步骤全解析  高防服务器:AI智能防御DDoS攻击与数据安全保障