File對象
lastModified 最后一次修改時(shí)間(毫秒)
lastModifiedDate 最后一次修改日期
name 文件名
type 文件類型
size 文件大小
FileReader
- 構(gòu)建FileReader實(shí)例
- 選擇要使用的讀取方式,如readAsDataURL(),將文件對象傳遞給該方法
- 監(jiān)聽讀取完成事件onload,通過this.result得到讀取結(jié)果
- 其它監(jiān)聽事件
以img為例,讀取文件
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<input type="file" name="" id="myFile" value="" multiple>
</body>
<script type="text/javascript">
var inp = document.querySelector("#myFile");
inp.onchange = function(){
console.log(this.files);
for (var i = 0; i < this.files.length; i++) {
var file = this.files[i];
console.log(file);
var fr = new FileReader();
fr.readAsDataURL(file);
fr.onload = function(){
console.log(this.result);
var img = new Image();
img.src = this.result;
document.body.appendChild(img);
}
}
}
</script>
</html>
在console.log控制臺中展現(xiàn),第一句:“data:image/jpeg;base64,”表示base64編碼。
Base64是網(wǎng)絡(luò)上最常見的用于傳輸8Bit字節(jié)代碼的編碼方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的詳細(xì)規(guī)范。Base64編碼可用于在HTTP環(huán)境下傳遞較長的標(biāo)識信息。例如,在Java Persistence系統(tǒng)Hibernate中,就采用了Base64來將一個(gè)較長的唯一標(biāo)識符(一般為128-bit的UUID)編碼為一個(gè)字符串,用作HTTP表單和HTTP GET URL中的參數(shù)。在其他應(yīng)用程序中,也常常需要把二進(jìn)制數(shù)據(jù)編碼為適合放在URL(包括隱藏表單域)中的形式。此時(shí),采用Base64編碼具有不可讀性,即所編碼的數(shù)據(jù)不會被人用肉眼所直接看到。
讀取方式
readAsDataURL(file) 讀取地址 base64
readAsText(file[,encoding]) 讀取文本
readAsBinaryString(file) 以二進(jìn)制讀取
事件
onload 讀取完成
onloadstart 開始讀取
onloadend 結(jié)束讀取 無論成功失敗都會觸發(fā)
onerror 觸發(fā)錯誤
onabort 中斷讀取時(shí)觸發(fā)