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小时内与您取得联系。