Html5 文件API(一)

[TOC]

## FileList ****對象與****File ****對象

直接看示例

html代碼

<input type="file" id="file" multiple>
<input type="button" id="btn" value="文件上傳">

js代碼

window.onload = function(){
 function showFile(){
  var file = document.getElementById('file');
  for (var i = 0; i < file.files.length; i++) {
   console.log(file.files[i]);
  }
 }

 var btn = document.getElementById('btn');
 btn.onclick = function(){
  showFile();
 };
};

示例中涉及屬性multiple屬性規(guī)定可同時選擇多個選項??蓞⒖?a target="_blank" rel="nofollow">multiple解釋

## Blob ****對象

根據上個實例,因為file繼承自blob,所以file可以得到文件的名字,尺寸,類型

files[i].name  //獲得第i個文件的名字
files[i].size  //獲得第i個文件的大小
files[i].type  //獲得第i個文件的類型

為上個實例添加判斷上傳文件是否為圖片

js代碼

window.onload = function(){
 function showFile(){
  var file = document.getElementById('file');
  for (var i = 0; i < file.files.length; i++) {
   if (!/image\/\w+/.test(file.files[i].type)) {
    alert('請上傳圖片喔!');
   }else{
    console.log('成功上傳。');
   }
  }
 }

 var btn = document.getElementById('btn');
 btn.onclick = function(){
  showFile();
 };
};

## FileReader ****對象

直接看示例

html

<input type="file" id="file">
<input type="button" id="btn" value="讀取文件">
<div id="result"></div>

五個對象

readAsBinaryString

把文件讀取為二進制字符串

window.onload = function(){
 function readAsBinaryString(){
  var file = document.getElementById('file').files[0];

  var reader = new FileReader();
  reader.readAsBinaryString(file);
  reader.onload = function(e){
   var result = document.getElementById('result');

   result.innerHTML = this.result;
  };

 }

 var btn = document.getElementById('btn');
 btn.onclick = function(){
  readAsBinaryString();
 };
};

readAsText

把文件讀取為文本數(shù)據

  1. 新建一個文本文件readAsText.txt,文本內容隨意填寫
  2. js代碼為
window.onload = function(){
function readAsText(){
 var file = document.getElementById('file').files[0];

 var reader = new FileReader();
 reader.readAsText(file);
 reader.onload = function(e){
  var result = document.getElementById('result');

  result.innerHTML = this.result;
 };

}

var btn = document.getElementById('btn');
btn.onclick = function(){
 readAsText();
};
};

readAsDataURL

將讀取到的文件編碼成Data URL。

window.onload = function(){
 function readAsDataURL(){
  var file = document.getElementById('file').files[0];

  var reader = new FileReader();
  reader.readAsDataURL(file);
  reader.onload = function(e){
   var result = document.getElementById('result');

   result.innerHTML = '<img src="'+ this.result +'" alt="" />';
  };

 }

 var btn = document.getElementById('btn');
 btn.onclick = function(){
  readAsDataURL();
 };
};

readArryButter

abort

中斷讀取操作

六個事件

onabort

加載被中斷時

onerror

加載出錯時

onloadstart

加載開始時

onprogress

加載過程中

onload

加載成功時

onloadend

加載結束后

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 單例模式 適用場景:可能會在場景中使用到對象,但只有一個實例,加載時并不主動創(chuàng)建,需要時才創(chuàng)建 最常見的單例模式,...
    Obeing閱讀 2,311評論 1 10
  • HTML5 文件 API FileList 對象與 file 對象 FileList 對象:表示用戶選擇的文件列表...
    游學者灬墨槿閱讀 747評論 0 0
  • H5 meta詳解 viewport width:控制 viewport 的大小,可以指定的一個值,如果 600,...
    FConfidence閱讀 887評論 0 3
  • 《ijs》速成開發(fā)手冊3.0 官方用戶交流:iApp開發(fā)交流(1) 239547050iApp開發(fā)交流(2) 10...
    葉染柒丶閱讀 5,622評論 0 7
  • 設計方案## 校首頁是我校在互聯(lián)網上向世界宣傳和分享學校教學科研成果、展示我校當代大學生生活風采的窗口。目標報考本...
    Glow閱讀 2,644評論 2 3

友情鏈接更多精彩內容