File對象
lastModified 最后一次修改時間(毫秒)
lastModifiedDate 最后一次修改日期
name 文件名
type 文件類型
size 文件大小
FileReader
- 構建FileReader實例
- 選擇要使用的讀取方式,如readAsDataURL(),將文件對象傳遞給該方法
- 監聽讀取完成事件onload,通過this.result得到讀取結果
- 其它監聽事件
以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控制臺中展現,第一句:“data:image/jpeg;base64,”表示base64編碼。
Base64是網絡上最常見的用于傳輸8Bit字節代碼的編碼方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的詳細規范。Base64編碼可用于在HTTP環境下傳遞較長的標識信息。例如,在Java Persistence系統Hibernate中,就采用了Base64來將一個較長的唯一標識符(一般為128-bit的UUID)編碼為一個字符串,用作HTTP表單和HTTP GET URL中的參數。在其他應用程序中,也常常需要把二進制數據編碼為適合放在URL(包括隱藏表單域)中的形式。此時,采用Base64編碼具有不可讀性,即所編碼的數據不會被人用肉眼所直接看到。
讀取方式
readAsDataURL(file) 讀取地址 base64
readAsText(file[,encoding]) 讀取文本
readAsBinaryString(file) 以二進制讀取
事件
onload 讀取完成
onloadstart 開始讀取
onloadend 結束讀取 無論成功失敗都會觸發
onerror 觸發錯誤
onabort 中斷讀取時觸發