2011-07-03 11 views
1

HTML 5の複数のファイルを使用して、アップロードする複数のファイルを選択できます。ファイルは、$_FILES変数のファイルの配列として出力されます。私はアップロードボタンがクリックされる前にリストされたファイルのすべての名前を取得するためにjQueryを使いたいと思います。Jqueryを使用して複数のファイルにアクセスする

<input class="pictures-upload" name="multiplePhotos[]" type="file" multiple="multiple" /> 

私は、人がアップロードファイルをクリックすると、複数のファイルを選択するとき、それはすべてのファイルの名前を取り、HTMLの体にそれを追加することのonchangeイベントを追加します。私は使用しています

$('.upload_button').live('change', function() { 
    var li = $('<li />').text($(this).val()), 
    $('#body').append(li); 

}); 

これは選択する最後のファイルのみをとります。すべてのファイルを取得するにはどうしたらいいですか?

答えて

4

input要素には、FileListタイプ(つまり、Fileのシーケンス)の 'ファイル'のネイティブプロパティがあります。 File要素のW3仕様を調べると、アクセスできるプロパティが見つかります。

しかし、短いストーリー、jQuery valメソッドは、あなたが望むものを返さないでしょう。 'files'は入力要素のネイティブプロパティであるため、this.filesを使用して直接アクセスできます。次に、配列を繰り返して、(name、size、typeなど)の情報を取得できるFileオブジェクトを取得します。

for (var i = 0; i < this.files.length; i++) { 
    var file = this.files[i]; 
    $fileList.append('<li>' + file.name + '</li>'); 
} 

それのjsFiddleのためにここを見て:http://jsfiddle.net/jonathon/bdbXk/

+1

を私はファイルのAPIをチェックしたが、そこにあれば、私はそれから項目を削除したい場合はファイルリスト例えばを操作する方法を考え出すことができませんでしたか?私は周りを見ようとしましたが、何も見ません。 – serengeti12

関連する問題