使用FileReader对象的readAsDataURL方法来读取图像文件

使用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>

<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之中,例如以下范例所示:


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>

<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方法来读取文件,只读取文件的第三个位元组读取到第六个位元组:


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>

<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>

 

时间: 2024-10-05 04:25:59

使用FileReader对象的readAsDataURL方法来读取图像文件的相关文章

转载:使用FileReader对象的readAsDataURL方法来读取图像文件

文章转载自:http://blog.okbase.net/jquery2000/archive/1296.html: FileReader对象的readAsDataURL方法可以将读取到的文件编码成Data URL.Data URL是一项特殊的技术,可以将资料(例如图片)内嵌在网页之中,不用放到外部文件.使用Data URL的好处是,您不需要额外再发出一个HTTP 请求到服务器端取得额外的资料:而缺点便是,网页的大小可能会变大.它适合应用在内嵌小图片,不建议将大图像文件编码成Data URL来使

ResquestInfoServlet类通过访问HttpServletRequest对象的各种方法来读取HTTP请求中的特定信息,并且把它们写入到HTML中

ResquestInfoServlet.java package com.demo.servlet; import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils; import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.se

JavaScript使用readAsDataURL读取图像文件

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

JavaScript 中的FileReader对象(实现上传图片预览)

1.FileReader对象简介 1.检测浏览器对FileReader的支持 if(window.FileReader) { var fr = new FileReader(); // add your code here } else { alert("Not supported by your browser!"); } 调用FileReader对象的方法 FileReader 的实例拥有 4 个方法,其中 3 个用以读取文件,另一个用来中断读取.下面的表格列出了这些方法以及他们的

FileReader 对象

FileReader 实例中有四个方法来读取文件数据 1.readAsBinaryString(Blob|File) 2.readAsDataURL(Blob|File) 3.readAsText(Blob|File) 4.readAsArrayBuffer(Blob|File) FileReader 实例包含很多事件(onerror, onprogress, onload[result]) <input name="file" id="uploadFile"

dwr处理参数或返回值为pojo对象的JavaBean方法

在使用dwr避免不了碰到javabean中有对象作为参数的,那么这样的方法怎么在js中调用呢? 就这个问题,做了一个小例子,与大家分享一下: package com.tgb.dwr; /** * dwr使用测试 * @author Admin * */ public class DwrTest { public String hellobody(User user){ return "Hello,"+user.getName()+",恭喜你今年"+user.getA

HTML5 FileReader对象

4个主要方法: abort():中断读取. readAsBinaryString():将文件读取为二进制码. readAsDataURL():将文件读取为DataURL. readAsText():将文件读取为文本. 事件: onabort:中断时 onerror:错误时 onload:读取成功 onloadend:读取完成不管失败还是成功 onloadstart:读取开始 onprogress:读取中 2个属性: result:只有读取成功后才有值,否者为空. readyState: 0:为读

DAY7-面向对象之绑定方法与非绑定方法

一.类中定义的函数分成两大类 一:绑定方法(绑定给谁,谁来调用就自动将它本身当作第一个参数传入): 1. 绑定到类的方法:用classmethod装饰器装饰的方法. 为类量身定制 类.boud_method(),自动将类当作第一个参数传入 (其实对象也可调用,但仍将类当作第一个参数传入) 2. 绑定到对象的方法:没有被任何装饰器装饰的方法. 为对象量身定制 对象.boud_method(),自动将对象当作第一个参数传入 (属于类的函数,类可以调用,但是必须按照函数的规则来,没有自动传值那么一说)

JS所有内置对象属性和方法汇总

JS三大对象 对象,是任何一个开发者都无法绕开和逃避的话题,她似乎有些深不可测,但如此伟大和巧妙的存在,一定值得你去摸索.发现.征服. 我们都知道,JavaScript有3大对象,分别是本地对象.内置对象和宿主对象. 在此引用ECMA-262(ECMAScript的制定标准)对于他们的定义: 本地对象 与宿主无关,独立于宿主环境的ECMAScript实现提供的对象. 简单来说,本地对象就是 ECMA-262 定义的类(引用类型). 这些引用类型在运行过程中需要通过new来创建所需的实例对象. 包