6

私は Javascript を使い始めて、いくつかの基礎を理解しようとしています。質問は特にファイルインターフェイスに関するものではありませんが、私が理解しようとしていることです。

私のHTMLファイルには、ファイルタイプの入力があります。

<input type="file" id="fileInput" multiple/>

次に、私のJSファイルには次のものがあります。

var fileVar = document.getElementById('fileInput').files[0];

これは正常に機能し、filevar のタイプはFile.

今、私はfiles属性がどのように機能するかを理解しようとしています。

W3 では、API は次のように定義されています。

 interface FileList {
      getter File? item(unsigned long index);
      readonly attribute unsigned long length;
    };

を使用して FileList 内の個々のファイルにアクセスする方法を見つけようとしていfilesます。どこにも定義されていないようです。配列はどこfilesから来ていますか?

4

1 に答える 1

5

filesプロパティはを返しますFileList

filesHTMLInputElementインターフェイス、つまり<input>タグのDOMインターフェイスのプロパティです。HTML5ファイルAPIをサポートするブラウザによって実装されます。

個々のファイルにアクセスするには、他のリスト/配列と同じようにそれらを繰り返すことができます。例えば:

var files = element.files; //where `element` is a file input element reference
//`files` references a FileList, you can iterate over it and access its File objects
for (var i = 0; i < files.length; i++) {
    console.log('File '+ i +"'s name = " + files[i].name +
        '; size: ' + files[i].size + ' bytes');
}

デモ

MDNには、FileAPIを使用するための優れたチュートリアルもあります。

于 2013-02-26T14:16:05.407 に答える