国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

JavaScript使用readAsDataURL讀取圖像文件

2024-05-06 16:37:04
字體:
來源:轉載
供稿:網友

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正常執行,不見得可以在其它瀏覽器中正確的執行。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 定兴县| 商南县| 高阳县| 礼泉县| 项城市| 新巴尔虎左旗| 广饶县| 融水| 布尔津县| 泸溪县| 延吉市| 汶川县| 平远县| 永川市| 咸阳市| 五莲县| 钦州市| 长汀县| 昌吉市| 屏南县| 德钦县| 大丰市| 乐昌市| 清新县| 大化| 斗六市| 正镶白旗| 东海县| 汪清县| 汕头市| 天全县| 吴忠市| 白朗县| 元谋县| 泉州市| 和静县| 女性| 会昌县| 和林格尔县| 北安市| 石首市|