最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js利用FileReader讀取本地文件或者blob方式

 更新時間:2021年12月09日 09:51:08   作者:愚舜  
這篇文章主要介紹了js利用FileReader讀取本地文件或者blob方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

FileReader讀取本地文件或blob

FileReader對象提供了異步讀取存儲在用戶計算機上的文件的內(nèi)容,使用 File或 Blob 對象指定要讀取的文件或數(shù)據(jù),F(xiàn)ileReader接口提供了讀取文件的方法和包含讀取結(jié)果的事件模型。

一、FileReader的使用

注意:如果需要兼容低版本的瀏覽器,需要判斷一下FileReader對象是否存在。

if (window.FileReader) {
 let reader = new FileReader();
} else {
 console.log('你的瀏覽器不支持讀取文件');
}

二、FileReader的方法

方法 作用 參數(shù) 返回值
abort() 中止讀取操作 none none
readAsArrayBuffer() 讀取file和Blob內(nèi)容 file/blob result屬性中返回ArrayBuffer數(shù)據(jù)對象的文件內(nèi)容
readAsBinaryString()[已被W3廢棄] 讀取file和Blob內(nèi)容 file/blob result屬性中返回原始二進制數(shù)據(jù)的文件內(nèi)容
readAsDataURL() 讀取file和Blob內(nèi)容 file/blob

result屬性中返回data:URL格式的Base64字符串的文件內(nèi)容

readAsText() 讀取file和Blob內(nèi)容 file/blob result屬性中返回一個字符串的文件內(nèi)容

三、FileReader的屬性

  • FileReader.error(只讀):一個異常,表示在讀取文件時發(fā)生的錯誤
  • FileReader.readyState(只讀):表示FileReader狀態(tài)的數(shù)字
狀態(tài)名 描述
0 EMPTY 未加載任何數(shù)據(jù)
1 LOADING 數(shù)據(jù)加載中
2 DONE

數(shù)據(jù)加載完畢

  • FileReader.result(只讀):讀取完文件的內(nèi)容,該屬性在數(shù)據(jù)讀取完成之后才有效,文件內(nèi)容的格式是由讀取的方法所決定。

四、FileReader的事件

  • FileReader.onabort:該事件是中止讀取的時候觸發(fā)。
  • FileReader.onerror:該事件是讀取發(fā)生錯誤的時候觸發(fā)。
  • FileReader.onload:該事件是讀取完成的時候觸發(fā)。
  • FileReader.onloadstart:該事件是讀取操作剛開始的時候觸發(fā)。
  • FileReader.onloadend:該事件是讀取結(jié)束的時候觸發(fā)(失敗和成功的時候都會觸發(fā))。
  • FileReader.onprogress:該事件在讀取的時候觸發(fā)。

注意:

1、由于安全性原因,F(xiàn)ileReader讀取的是由input傳入的文件或者是由ajax讀取服務(wù)端返回的文件,不可以是指定路徑的文件的讀取。

2、FileReader可以在webworker中使用。

<!DOCTYPE html>
<html class="no-js">
	<head>
		<meta charset="utf-8" />
		<meta http-equiv="X-UA-Compatible" content="IE=edge" />
		<title></title>
		<meta name="description" content="" />
		<meta name="viewport" content="width=device-width, initial-scale=1" />
		<link rel="stylesheet" href="" />
	</head>
 
	<body>
		<input type="file" id="myFile" />
		<script type="text/javascript">
			if (window.FileReader) {
				var reader = new FileReader();
			} else {
				console.log('你的瀏覽器不支持讀取文件');
			}
			var myFile = document.querySelector('#myFile');
			myFile.onchange = function () {
				var file = myFile.files[0];
				reader.readAsDataURL(file);
				reader.onload = function () {
					var data = reader.result;   //base64形式的文件內(nèi)容
				};
                reader.onerror = function(){
                    console.log('讀取失敗');
                    console.log(reader.error);
                }
			};
		</script>
	</body>
</html>

使用FileReader讀取本地磁盤文件問題

執(zhí)行一個js文件 (將js文件置于項目的src下)

(1) java.net.URL url = TestScriptEngine.class.getClassLoader().getResource("a.js");
(2)//System.out.println(url.getPath().substring(1).replace("%20", " "));
(3)FileReader fileReader = new FileReader(url.getPath());

運行時

出現(xiàn):Exception in thread "main" java.io.FileNotFoundException: D:\Eclipse%20WorkSpace\(java300)ScriptManager\bin\a.js (The system cannot find the path specified)

若把url.getPath()換成"D:/Eclipse WorkSpace/(java300)ScriptManager/bin/a.js"我的本地文件目錄,則可以成功讀取文件

url.getPath()的值為: D:\Eclipse%20WorkSpace\(java300)ScriptManager\bin\a.js 但是不能找到加載文件

問題就出現(xiàn)在“%20” ,Eclipse WorkSpace之間本來是空格,系統(tǒng)自動將其換為%20,導(dǎo)致運行是出錯

對url.getPath()作一些處理,把url.getPath().substring(1).replace("%20", " "); 把%20替換為" "空格;問題解決

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 惰性函數(shù)定義模式 使用方法

    惰性函數(shù)定義模式 使用方法

    惰性函數(shù)定義模式 使用方法...
    2007-09-09
  • 基于javascript實現(xiàn)圖片預(yù)加載

    基于javascript實現(xiàn)圖片預(yù)加載

    這篇文章主要介紹了javascript圖片預(yù)加載的方法,實例分析了javascript實現(xiàn)圖片預(yù)加載的思路,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-01-01
  • JavaScript?Canvas繪制六邊形網(wǎng)格

    JavaScript?Canvas繪制六邊形網(wǎng)格

    這篇文章主要為大家詳細介紹了JavaScript?Canvas繪制六邊形網(wǎng)格,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • JS可視化學(xué)習(xí)向量計算點到線段的距離并展示

    JS可視化學(xué)習(xí)向量計算點到線段的距離并展示

    這篇文章主要為大家介紹了JS可視化學(xué)習(xí)向量計算點到線段的距離并展示實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • Bootstrap表單布局

    Bootstrap表單布局

    這篇文章主要介紹了Bootstrap表單布局的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • javascript移動開發(fā)中touch觸摸事件詳解

    javascript移動開發(fā)中touch觸摸事件詳解

    這篇文章主要為大家詳細介紹了javascript移動開發(fā)中touch觸摸事件,感興趣的小伙伴們可以參考一下
    2016-03-03
  • 學(xué)會javascript之迭代器

    學(xué)會javascript之迭代器

    本文主要講解javascript之迭代器,在 JavaScript 中,迭代器是一個對象,它定義一個序列,并在終止時可能返回一個返回值。需要詳細了解相關(guān)知識的小伙伴可以參考一下這篇文章
    2021-09-09
  • 在服務(wù)端(Page.Write)調(diào)用自定義的JS方法詳解

    在服務(wù)端(Page.Write)調(diào)用自定義的JS方法詳解

    自從[javascript]自定義MessageBox一文發(fā)布以后,很多網(wǎng)友都來信詢問,如何在服務(wù)端調(diào)用ShowInfo方法,周末休息想了個折中的辦法來實現(xiàn)
    2013-08-08
  • 利用bootstrapValidator驗證UEditor

    利用bootstrapValidator驗證UEditor

    這篇文章主要為大家詳細介紹了利用bootstrapValidator驗證UEditor,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • uni-app微信小程序使用echarts的詳細圖文教程

    uni-app微信小程序使用echarts的詳細圖文教程

    為了兼容小程序Canvas,ECharts提供了一個小程序的組件,用這種方式可以方便地使用ECharts,下面這篇文章主要給大家介紹了關(guān)于uni-app微信小程序使用echarts的相關(guān)資料,需要的朋友可以參考下
    2022-10-10

最新評論

休宁县| 上林县| 石城县| 涡阳县| 个旧市| 牟定县| 武汉市| 闵行区| 霍州市| 久治县| 天柱县| 宜州市| 唐河县| 青海省| 上虞市| 襄汾县| 云梦县| 禄丰县| 平乡县| 扶绥县| 松潘县| 保德县| 全南县| 太康县| 雅江县| 武定县| 宝鸡市| 溧阳市| 句容市| 巫溪县| 江北区| 富蕴县| 东乌珠穆沁旗| 台南县| 垦利县| 中方县| 团风县| 黄石市| 鸡西市| 高雄县| 雅江县|