如何使用JavaScript访问文件元素的files属性

时间:2012-04-11 08:35:31

标签: javascript jquery dom

我在表单中有一个带文件类型的输入元素。我喜欢做的是在元素上传之前检查文件大小以确认问题。通过使用大多数主要的Web浏览器(IE总是做得更难),我发现所有人都使用了"属性"每当我选择一个新文件并显示文件大小时,它都会更新,以及其他有用的信息。

以下是我在Chrome网络浏览器中看到的内容:

enter image description here

现在的问题是,如何使用JavaScript访问该值?我尝试了几种方法,但没有一种方法对我有好处?有什么好主意吗?

注意:在我的网站上我使用jQuery,因此仅仅是常规JavaScript的答案并不重要。

亲切的问候 Merianos Nikos

2 个答案:

答案 0 :(得分:3)

//use any ol' selector to get the <input /> element:
var inputElement = document.querySelector("input[type='file']");

//then it's just like you'd access any object's attributes:
var fileSize = inputElement.files[0].size;
//note that it's a list of files, so you can loop through them
//in case the element accepts multiple files

//if you want all of the attributes, do something like:
for (var key in inputElement.files[0])
    if (inputElement.files[0].hasOwnProperty(key))
         console.log(key,inputElement.files[0][key]);

答案 1 :(得分:0)

或:

$("#btStartUpload").on("click", function(evt) {        

    var filesSelected = document.getElementById('btInput').files; // FileList object
    // var filesSelected = $('#btInput')[0].files; // with jQuery, any jQuery object have it's DOM element accessed using [0]
    // var filesSelected = $('input[type=file]')[0].files;
    console.log(filesSelected);
});