为什么我的输入类型=文件没有加载文件信息

Why is my input type=file not loading file information?

本文关键字:文件 加载 信息 我的 输入 类型 为什么      更新时间:2023-09-26

试图解决这个问题。我有一个<input type='file'>元素,用于上传文件,作为使用旧浏览器的用户的拖放选项的替代方案。

拖放上传工作正常,但由于某种原因,使用输入选择文件时,files对象返回undefined

在下面的示例中,我包含一个测试变量来检查事件侦听器是否正常工作 - 确实如此 - 但记录文件内容的尝试不起作用 - 无论我尝试记录整个对象还是单个属性。

这是代码:

.HTML:

 <input type="file" id='uploadFile'>

Javascript (jQuery)

 doc.on('change', '#uploadFile', function(){
    var file = $(this);
    var test = 'Event Triggered';
    console.log(test);               //Returns 'Event Triggered'
    console.log(file.files);         //Returns undefined
    console.log(file.files[0]);      //Returns TypeError: cannot read property '0' of undefined
 });

我哪里出错了?不禁觉得这是一个愚蠢的疏忽,但任何帮助将不胜感激。

谢谢!

files 属性位于 DOMElement 上,而不是 jQuery 对象上。试试这个:

$(document).on('change', '#uploadFile', function() {
    var file = $(this)[0]; // note the [0] to return the DOMElement from the jQuery object
    var test = 'Event Triggered';
    console.log(test);
    console.log(file.files);
    console.log(file.files[0]);
});

工作示例

doc.on('change', '#uploadFile', function(e){
    var file = $(this);
    var test = 'Event Triggered';
console.log(e.target.files)
 });

使用 event.target.files

这是我

的解决方案:

$('#uploadFile').change(function()
{
   console.log(this.files);         
   console.log(this.files[0]);
});

试试这个console.log($('#uploadFile')[0].files[0]);

在此处输入链接描述 希望这有帮助