16

次のコードを使用して、HTML入力でアップロードされているファイルに関する情報を取得しようとしています。

$(document).ready(function() {
  $('#btn').on('click', function() {
    file_size = $("#my_file").files[0].size;
    alert(file_size);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
  <input id="my_file" type="file" name="my_name" />
  <input id="btn" type="button" />
</form>

しかし、それは機能せず、コンソールは次のように戻ります。$("#my_file").files is undefined

4

3 に答える 3

54

$("#my_file")はjQueryオブジェクトであり、jQueryオブジェクトにはプロパティがありませんfiles...

jQueryからDOM要素を取得するには、次のようにします。

$("#my_file")[0].files[0].size

補足として、ファイルを選択していない場合は、が表示され、($("#my_file"))[0].files[0]エラーundefined($("#my_file"))[0].files[0].sizeスローされます。
チェックを追加することをお勧めします...

if ($("#my_file")[0].files.length > 0) {
    file_size = $("#my_file")[0].files[0].size
} else {
    // no file chosen!
}
于 2013-02-08T12:41:35.967 に答える
6

jQueryオブジェクトにはプロパティがありませんfiles。古いメソッドgetElementByIdまたはjQuerygetメソッドを使用してDOM要素オブジェクトを選択できます。

$(document).ready(function() {
  $('#btn').on('click', function() {
    file_size = document.getElementById("my_file").files[0].size;
    alert(file_size);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
  <input id="my_file" type="file" name="my_name" />
  <input id="btn" type="button" />
</form>

于 2013-02-08T12:42:15.033 に答える
-5

$(document).ready(function() {
  $('#btn').on('click', function() {
    file_size = document.getElementById("my_file").files[0].size;
    alert(file_size);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
  <input id="my_file" type="file" name="my_name" />
  <input id="btn" type="button" />
</form>

于 2017-07-03T08:58:51.243 に答える