使用FileReader对象的readAsDataURL方法来读取图像文件
FileReader对象的readAsDataURL方法可以将读取到的文件编码成Data URL。Data URL是一项特殊的技术,可以将资料(例如图片)内嵌在网页之中,不用放到外部文件。使用Data URL的好处是,您不需要额外再发出一个HTTP 请求到服务器端取得额外的资料;而缺点便是,网页的大小可能会变大。它适合应用在内嵌小图片,不建议将大图像文件编码成Data URL来使用。您的图像文件不能够超过浏览器限定的大小,否则无法读取图像文件。
参考以下使用readAsDataURL读取图像文件范例:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <!DOCTYPE html><head>    <title> </title>    <script type = "text/javascript">        function ProcessFile( e ) {             var file = document.getElementById('file').files[0];            if(file) {                               var reader = newFileReader();                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之中,例如以下范例所示:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <!DOCTYPE html><head><title> </title><script type = "text/javascript">function ProcessFile( e ) { var file = document.getElementById('file').files[0];if( file ) {var reader = newFileReader();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方法来读取文件,只读取文件的第三个位元组读取到第六个位元组:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | <!DOCTYPE html><head><title> </title><script type = "text/javascript">function ProcessFile( e ) {var file = document.getElementById( 'file').files[0];if( file ) {var reader = newFileReader ();reader.onload = function ( event ) {var txt = event.target.result;document.getElementById( "result").innerHTML = txt;};}if( file.webkitSlice ) {var blob = file.webkitSlice( 2, 4);} elseif( 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>
 | 
使用FileReader对象的readAsDataURL方法来读取图像文件的更多相关文章
- FileReader对象的readAsDataURL方法来读取图像文件
		FileReader对象的readAsDataURL方法可以将读取到的文件编码成Data URL.Data URL是一项特殊的技术,可以将资料(例如图片)内嵌在网页之中,不用放到外部文件.使用Dat ... 
- 转载:使用FileReader对象的readAsDataURL方法来读取图像文件
		文章转载自:http://blog.okbase.net/jquery2000/archive/1296.html: FileReader对象的readAsDataURL方法可以将读取到的文件编码成D ... 
- ResquestInfoServlet类通过访问HttpServletRequest对象的各种方法来读取HTTP请求中的特定信息,并且把它们写入到HTML中
		ResquestInfoServlet类通过访问HttpServletRequest对象的各种方法来读取HTTP请求中的特定信息,并且把它们写入到HTML中 ResquestInfoServlet.j ... 
- JS使用readAsDataURL读取图像文件
		JS使用readAsDataURL读取图像文件 FileReader对象的readAsDataURL方法可以将读取到的文件编码成Data URL.Data URL是一项特殊的技术,可以将资料(例如图片 ... 
- JavaScript使用readAsDataURL读取图像文件
		JavaScript使用readAsDataURL读取图像文件 FileReader对象的readAsDataURL方法可以将读取到的文件编码成Data URL.Data URL是一项特殊的技术,可以 ... 
- 使用readAsDataURL方法预览图片
		使用FileReader接口的readAsDataURL方法实现图片的预览. 在FileReader出现之前,前端的图片预览是这样实现的:把本地图片上传到服务器,服务器把图片地址返回,并把它替换到图片 ... 
- 读取本地文件理解FileReader对象的方法和事件以及上传按钮的美化。
		一.FileReader对象 用来把文件读入内存,并且读取文件中的数据.FileReader对象提供了异步API,使用该API可以在浏览器主线程中异步访问文件系统,读取文件中的数据. 浏览器支持情况, ... 
- javascript:FileReader对象(读取文件)
		FileReader对象 1.检测浏览器对FileReader的支持 1 if(window.FileReader) { 2 var fr = new FileReader(); 3 // add y ... 
- 前端H5中JS用FileReader对象读取blob对象二进制数据,文件传输
		HTML5中的Blob对象只是二进制数据的容器,本身并不能操作二进制,故本篇将对其操作对象FileReader进行介绍. FileReader FileReader主要用于将文件内容读入内存,通过一系 ... 
随机推荐
- c++ 指针访问数组
			用指针访问一维数组 用指针访问二维数组 用指针访问三维数组 一. 用指针访问一维数组 //代码 ; ]={,}; int *p=&a; //int *p=&a[0]; printf(& ... 
- 用matplotlib获取雅虎股票数据并作图
			matplotlib有一个finance子模块提供了一个获取雅虎股票数据的api接口:quotes_historical_yahoo_ochl 感觉非常好用! 示例一 获取数据并作折线图 import ... 
- 【转】QT事件传递与事件过滤器
			[概览] 1.重载特定事件函数. 比如: mousePressEvent(),keyPressEvent(), paintEvent() . 2.重新实现QObject::ev ... 
- Git 解决添加到.gitignore的忽略项不生效的问题
			今天又在.gitignore添加了一些忽略项,但是后来发现一些东西命名配置了忽略项却还是没起作用,so,分析原因,可能是在我添加忽略项之前,因为这些文件就早已经被提交了,所有他们已经在版本控制中,导致 ... 
- [COCI2009]Dvapravca 计算几何
			[COCI2009]Dvapravca LG传送门 先给出考场上的\(O(n^3)\)乱搞方法:枚举一个蓝点和一个红点,找出过着两个点的直线,再枚举蓝点找出这条直线最多能往两边扩展多宽,最后枚举红点计 ... 
- PageIOLatch和PageLatch
			Latch是轻量级的锁,它是SQL Server内部用来同步资源访问的一个数据结构,使数据的访问同步有序,这意味着,当一个线程获得资源R的Latch的独占使用权时,如果其他的线程也想访问这个Latch ... 
- 2018年美国大学生数学建模竞赛(MCM/ICM) C题解题思路
			整个赛题是一道大数据的深层挖掘与分析赛题,数据在这是很重要的组成因 素,因此大家首先应该把题目所给的数据搞清楚搞明白.赛题的关键是能源生产 和使用的合理安排,针对第一部分,主要解决能源的配置与评价问题 ... 
- CSS基础范例
			<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ... 
- 最新Microsoft Edge!使用chromium内核
			2018年11月,微软宣布其Edge浏览器将采用Chromium引擎,意味着微软的Edge浏览器以失败告终. 但令人振奋的是,新版Edge也许会“死而复生”.在使用了Chromium内核后,Edge各 ... 
- webbrowser 模块的 open()方法
			webbrowser 模块的 open()函数可以启动一个新浏览器,打开指定的 URL.在交 互式环境中输入以下代码: >>> import webbrowser >>& ... 
