この記事は編集レビューを必要としています。ぜひご協力ください。
この型のオブジェクトは、 <input> 要素の files プロパティによって返されます;これによって、 <input type="file"> 要素で選択されたファイルのリストにアクセスできます。 また、drag and drop API を使用しているとき、Web コンテンツにドロップされたファイルのリストにアクセスするためにも使用されます;この使用方法の詳細は DataTransfer オブジェクトを見てください。
ノート: Gecko 1.9.2 以下では、input 要素は一度に 1 つのファイルだけサポートします。これは、FileList には 1 つのファイルだけが含まれることを意味します。Gecko 1.9.2 から、input 要素の multiple 属性が true の場合、FileList は複数ファイルを含められます。
ファイルリストの使用
すべての <input> 要素ノードは、このリストの項目にアクセスするための files 配列を持ちます。たとえば、HTML が次の file input を含むとします:
<input id="fileItem" type="file">
次のコード行は、ノードのファイルリスト内の最初のファイルを File オブジェクトとして取得します:
var file = document.getElementById('fileItem').files[0];
メソッド概観
File item(index); |
プロパティ
| 属性 | 型 | 説明 |
length |
integer |
リストのファイル数を示す読み取り専用値 |
メソッド
item()
ファイルリスト内の指定されたインデックスにあるファイルを表す File オブジェクトを返す。
File item( index );
パラメーター
index- リストから扱うための 0 ベースのインデックス。
戻り値
要求されたファイルを表す File。
例
この例はユーザーが input 要素を使用して選択したすべてのファイルをイテレートします:
// fileInput は input 要素: <input type="file" id="myfileinput" multiple>
var fileInput = document.getElementById("myfileinput");
// files は FileList オブジェクト(NodeList に類似)
var files = fileInput.files;
var file;
// files を通したループ
for (var i = 0; i < files.length; i++) {
// 項目の取得
file = files.item(i);
// または
file = files[i];
alert(file.name);
}
完全な例はこちら。
<!DOCTYPE HTML>
<html>
<head>
</head>
<body>
<!--multiple は複数選択の許可を設定します。-->
<input id="myfiles" multiple type="file">
</body>
<script>
var pullfiles=function(){
// love the query selector
var fileInput = document.querySelector("#myfiles");
var files = fileInput.files;
// cache files.length
var fl=files.length;
var i=0;
while ( i < fl) {
// localize file var in the loop
var file = files[i];
alert(file.name);
i++;
}
}
// input 要素の onchange に pullfiles の呼び出しを設定
document.querySelector("#myfiles").onchange=pullfiles;
//a.t
</script>
</html>
仕様
- File upload state (HTML5 ワーキングドラフト)