全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

JavaScript使用readAsDataURL读取图像文件

FileReader对象的readAsDataURL方法可以将读取到的文件编码成Data URL。Data URL是一项特殊的技术,可以将资料(例如图片)内嵌在网页之中,不用放到外部文件。使用Data URL的好处是,您不需要额外再发出一个HTTP 请求到服务器端取得额外的资料;而缺点便是,网页的大小可能会变大。它适合应用在内嵌小图片,不建议将大图像文件编码成Data URL来使用。您的图像文件不能够超过浏览器限定的大小,否则无法读取图像文件。

参考以下使用readAsDataURL读取图像文件范例:

<!DOCTYPE html>
<html xmlns = "http://www.w3.org/1999/xhtml" >
<head>
  <title> </title>
  <script type = "text/javascript" >
    function ProcessFile( e ) { 
      var file = document.getElementById('file').files[0];
      if (file) {
        
        var reader = new FileReader();
        reader.onload = function ( event ) { 
          var txt = event.target.result;
          document.getElementById("result").innerHTML = txt;
          };
       }
      reader.readAsDataURL( file );
      }
    function contentLoaded () {
      document.getElementById('file').addEventListener( 'change' ,
ProcessFile , false );
    }
    window.addEventListener( "DOMContentLoaded" , contentLoaded , false );
  </script>
</head>
<body>
  请选取一个图像文件: <input type = "file" id = "file" name = "file" />
  <div id = "result"> </div>
</body>
</html>

 

readAsDataURL方法会使用base-64进行编码,编码的资料由data字串开始,后面跟随的是MIME type,然后再加上base64字串,逗号之后就是编码过的图像文件的内容。
使用Img显示图像文件 

若想要将读取出来的图像文件,直接显示在网页上,您可以透过JavaScript建立一个<img>标签,再设定src属性为Data URL,再将<img>标签加入DOM之中,例如以下范例所示:

<!DOCTYPE html>
<html xmlns = "http://www.w3.org/1999/xhtml" >
<head>
<title> </title>
<script type = "text/javascript" >
function ProcessFile( e ) { 
var file = document.getElementById('file').files[0];
if ( file ) {
 
var reader = new FileReader();
reader.onload = function ( event ) { 
var txt = event.target.result;
var img = document.createElement("img");
img.src = txt;
document.getElementById("result").appendChild( img );
};
}
reader.readAsDataURL( file );
}
function contentLoaded() {
document.getElementById('file').addEventListener( 'change' ,
ProcessFile , false );
}
window.addEventListener( "DOMContentLoaded" , contentLoaded , false );
</script>
</head>
<body>
请选取一个图像文件: <input type = "file" id = "file" name = "file" />
<div id = "result"> </div>
</body>
</html>

读取部分文件

有时想要读取的文件太大,想要分段进行读取;或者只想要读取文件部分的内容,这时您可以将文件切割,根据浏览器的不同,可以使用以下方法:
webkitSlice:适用于支持Webkit引擎的浏览器,如Chrome。
mozSlice:适用于Firefox。
这两个方法要传入开始的位元组索引,以及结尾的位元组索引,索引以0开始。以下程式范例以FileReader对象的readAsBinaryString方法来读取文件,只读取文件的第三个位元组读取到第六个位元组:

<!DOCTYPE html>
<html xmlns ="http://www.w3.org/1999/xhtml" >
<head>
<title> </title>
<script type = "text/javascript" >
function ProcessFile( e ) {
var file = document.getElementById( 'file' ).files[0];
if ( file ) {
var reader = new FileReader ();
reader.onload = function ( event ) {
var txt = event.target.result;
document.getElementById( "result" ).innerHTML = txt;
};
}
if ( file.webkitSlice ) {
var blob = file.webkitSlice( 2, 4 );
} else if ( file.mozSlice ) {
var blob = file.mozSlice( 2, 4 );
}
reader.readAsBinaryString( blob );
}
function contentLoaded() {
document.getElementById( 'file' ).addEventListener( 'change' ,
ProcessFile , false );
}
window.addEventListener( "DOMContentLoaded", contentLoaded , false );
</script>
</head>
<body>
<input type = "file" id = "file" name = "file" />
<div id = "result" > </div>
</body>
</html>

请注意:

不同的浏览器对于HTML 5的支持程度不同,上述程式码可在chrome正常执行,不见得可以在其它浏览器中正确的执行。

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


# readAsDataURL读取图像文件  # readAsDataURL读取文件  # js读取图像文件  # 使用JavaScript解析URL的方法示例  # javascript将url解析为json格式的两种方法  # JavaScript使用readAsDataUrl方法预览图片  # JavaScript获取URL参数的方法之一  # 使用JavaScript获取URL中的参数(两种方法)  # JavaScript重定向URL参数的两种方法小结  # JavaScript获取URL中参数querystring的方法详解  # JavaScrip如果基于url实现图片下载  # 位元  # 适用于  # 您可以  # 内嵌  # 的是  # 字串  # 您的  # 这两个  # 再加上  # 太大  # 可在  # 请注意  # 可以使用  # 所示  # 要将  # 第三个  # 建立一个  # 用在  # 不能够  # 您不 


相关文章: 建站之星CMS建站配置指南:模板选择与SEO优化技巧  建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  网站制作企业,网站的banner和导航栏是指什么?  郑州企业网站制作公司,郑州招聘网站有哪些?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  如何在万网ECS上快速搭建专属网站?  如何快速搭建高效WAP手机网站吸引移动用户?  常州企业网站制作公司,全国继续教育网怎么登录?  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  小程序网站制作需要准备什么资料,如何制作小程序?  如何在景安云服务器上绑定域名并配置虚拟主机?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  网站图片在线制作软件,怎么在图片上做链接?  如何在橙子建站上传落地页?操作指南详解  免费视频制作网站,更新又快又好的免费电影网站?  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  如何快速使用云服务器搭建个人网站?  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  建站之星IIS配置教程:代码生成技巧与站点搭建指南  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  Java解压缩zip - 解压缩多个文件或文件夹实例  如何通过商城自助建站源码实现零基础高效建站?  攀枝花网站建设,攀枝花营业执照网上怎么年审?  制作农业网站的软件,比较好的农业网站推荐一下?  建站上传速度慢?如何优化加速网站加载效率?  如何通过云梦建站系统实现SEO快速优化?  宁波免费建站如何选择可靠模板与平台?  整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?  网站制作公司,橙子建站是合法的吗?  北京建设网站制作公司,北京古代建筑博物馆预约官网?  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  Android滚轮选择时间控件使用详解  建站之星代理商如何保障技术支持与售后服务?  模具网站制作流程,如何找模具客户?  宝塔面板创建网站无法访问?如何快速排查修复?  北京企业网站设计制作公司,北京铁路集团官方网站?  专业网站制作服务公司,有哪些网站可以免费发布招聘信息?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  如何快速登录WAP自助建站平台?  如何在万网开始建站?分步指南解析  网站制作说明怎么写,简述网页设计的流程并说明原因?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  如何在香港服务器上快速搭建免备案网站?  建站之星会员如何解锁更多建站功能?  微信小程序 input输入框控件详解及实例(多种示例)  如何在Golang中指定模块版本_使用go.mod控制版本号  音响网站制作视频教程,隆霸音响官方网站?  如何选择域名并搭建高效网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。