前言:filereader是一種非同步檔案讀取機制,結合input:file可以很方便的讀取本地檔案。
在介紹filereader之前,先簡單介紹input的file型別。
input的file型別會渲染為乙個按鈕和一段文字。點選按鈕可開啟檔案選擇視窗,文字表示對檔案的描述(大部分情況下為檔名);file型別的input會有files屬性,儲存著檔案的相關資訊。點選按鈕上傳乙個檔案後,在控制台列印input.files,如下:
可以發現input.files是乙個陣列,由傳入的file物件組成。每個file物件包含以下屬性:
lastmodified:數值,表示最近一次修改時間的毫秒數;
lastmodifieddate:物件,表示最後一次表示最近一次修改時間的date物件(高程中說是字串,根據上圖可看出應該為物件,為了層級清晰未對其展開,大家可自行檢視,其可呼叫date物件的有關方法,例如getday方法);
name:本地檔案系統中的檔名;
size:檔案的位元組大小;
type:字串,檔案的mime型別;
weblitrelativepath:此處為空;當在input上加上webkitdirectory屬性時,使用者可選擇資料夾,此時weblitrelativepath表示資料夾中檔案的相對路徑。比如:
點選按鈕新增乙個包含3個檔案的名為php的資料夾後,控制台列印inputbox.files,如下:可看出,此時weblitrelativepath表示當前file物件的檔案在資料夾中的路徑。
以上file物件只獲取到了對檔案的描述資訊,但沒有獲得檔案中的資料,而inputbox.value也只是儲存的是檔案的絕對路徑(這裡就不展示了,大家可以自己試一試)。我們可以通過html5提供的filereader讀取到檔案中的資料。
首先建立乙個filereader例項:
var reader = new filereader();filereader提供了如下方法:
readasarraybuffer(file)
按位元組讀取檔案內容,結果用arraybuffer物件表示
readasbinarystring(file)
按位元組讀取檔案內容,結果為檔案的二進位制串
readasdataurl(file)
讀取檔案內容,結果用data:url的字串形式表示
readastext(file,encoding)
按字元讀取檔案內容,結果用字串形式表示
abort()
終止檔案讀取操作
readasdataurl和readastext較為常用,這裡只對這兩者進行說明。
readasdataurl會將檔案內容進行base64編碼後輸出:
當讀取操作被中止時呼叫
onerror
當讀取操作發生錯誤時呼叫
onload
當讀取操作成功完成時呼叫
onloadend
當讀取操作完成時呼叫,無論成功或失敗
onloadstart
當讀取操作開始時呼叫
onprogress
在讀取資料過程中週期性呼叫
每過50ms左右,就會觸發一次progress事件,對於較大的檔案可以利用progress實現進度條;onload事件在onloadend之前觸發。
由於種種原因無法讀取檔案時,會觸發error事件。觸發error事件時,相關資訊儲存在filereader物件的error屬性中,這個屬性將儲存乙個物件,此物件只有乙個屬性code,即錯誤碼。1表示未找到檔案,2表示安全性錯誤,3表示讀取中斷,4表示檔案不可讀,5表示編碼錯誤。
如果想中斷讀取過程,可以呼叫abort方法,就會觸發abort事件。
無論觸發load,error,abort事件中哪乙個,最終都會觸發loadend事件。
讀取Structs properties檔案
在這裡我直接返回的是properties物件 這樣更靈活 可以在外部呼叫的時候想哪到properties檔案裡的哪個屬性都行,當然必須要是properties裡存在的。讀取properties檔案 param propertiesname return public static propertie...
python linecache 模組讀取檔案
python linecache 模組讀取檔案用法詳解 linecache 模組允許從任何檔案裡得到任何的行,並且使用快取進行優化,常見的情況是從單個檔案讀取多行。linecache.getlines filename 從名為 filename 的檔案中得到全部內容,輸出為列 式,以檔案每行為列表中...
selenium python讀取XML檔案
在實際的自動化測試場景中,我們的測試資料是沒有規則的,此時我們需要建立乙個xml檔案來存放我們的測試資料。首先這是我們要讀取的xml檔案 windows chorm 北京上海 西安成都 1.獲取標籤資訊 首先要匯入xml的mindom模組,用來處理xml檔案,parse 用於開啟xml檔案。docu...