首页 > 语言 > JavaScript > 正文

JavaScript使用readAsDataURL读取图像文件

2024-05-06 15:17:24
字体:
来源:转载
供稿:网友

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>

读取部分文件

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选