全网整合营销服务商

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

免费咨询热线: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实现图片下载  # 位元  # 适用于  # 您可以  # 内嵌  # 的是  # 字串  # 您的  # 这两个  # 再加上  # 太大  # 可在  # 请注意  # 可以使用  # 所示  # 要将  # 第三个  # 建立一个  # 用在  # 不能够  # 您不 


相关文章: 网站制作企业,网站的banner和导航栏是指什么?  如何快速生成高效建站系统源代码?  建站主机选哪家性价比最高?  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  如何快速搭建响应式可视化网站?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  ,网站推广常用方法?  如何在云主机上快速搭建网站?  C++中引用和指针有什么区别?(代码说明)  如何零成本快速生成个人自助网站?  建站之星IIS配置教程:代码生成技巧与站点搭建指南  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  网站制作软件有哪些,制图软件有哪些?  制作网站的模板软件,网站怎么建设?  建站之星CMS建站配置指南:模板选择与SEO优化技巧  盐城做公司网站,江苏电子版退休证办理流程?  制作证书网站有哪些,全国城建培训中心证书查询官网?  c# await 一个已经完成的Task会发生什么  javascript中对象的定义、使用以及对象和原型链操作小结  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  网页设计与网站制作内容,怎样注册网站?  ,巨量百应是干嘛的?  如何批量查询域名的建站时间记录?  ,想在网上投简历,哪几个网站比较好?  怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  已有域名建站全流程解析:网站搭建步骤与建站工具选择  武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?  简历在线制作网站免费版,如何创建个人简历?  如何选择高效可靠的多用户建站源码资源?  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  北京企业网站设计制作公司,北京铁路集团官方网站?  建站OpenVZ教程与优化策略:配置指南与性能提升  如何通过wdcp面板快速创建网站?  c# 在高并发场景下,委托和接口调用的性能对比  黑客入侵网站服务器的常见手法有哪些?  制作企业网站建设方案,怎样建设一个公司网站?  浅析上传头像示例及其注意事项  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  用v-html解决Vue.js渲染中html标签不被解析的问题  高端企业智能建站程序:SEO优化与响应式模板定制开发  模具网站制作流程,如何找模具客户?  建站之星如何防范黑客攻击与数据泄露?  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  大同网页,大同瑞慈医院官网?  宁波免费建站如何选择可靠模板与平台?  建站之星2.7模板:企业网站建设与h5定制设计专题  如何在云服务器上快速搭建个人网站? 

您的项目需求

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