Javascript 试图将图像上载到firebase存储,但不断收到错误:无法读取属性';名称';未定义的
您好,我正在尝试将图像上载到firebase存储,但在遵循firebase Official站点中的所有说明后,我正在尝试找出此错误: 未捕获的TypeError:无法读取未定义的属性“name” 上传文件时(gastro.js:72) 在HTMLButtonElement.onclick(gastro.html:57)Javascript 试图将图像上载到firebase存储,但不断收到错误:无法读取属性';名称';未定义的,javascript,html,image,firebase-storage,Javascript,Html,Image,Firebase Storage,您好,我正在尝试将图像上载到firebase存储,但在遵循firebase Official站点中的所有说明后,我正在尝试找出此错误: 未捕获的TypeError:无法读取未定义的属性“name” 上传文件时(gastro.js:72) 在HTMLButtonElement.onclick(gastro.html:57) 上传文件 提交//第二个错误在这里 正如我看到的,您使用了两种不同的功能来完成这项工作,第一种是fow获取输入,即handleFileSelect,另一种是uploadFi
上传文件
提交//第二个错误在这里
正如我看到的,您使用了两种不同的功能来完成这项工作,第一种是fow获取输入,即handleFileSelect
,另一种是uploadFile
,因此我认为范围绑定存在问题。varibale位于您要访问的另一个作用域内。
您只需在访问变量之前先初始化它
而不是在上传函数中获取该文件的实例。
您可以直接使用标签id
访问该文件
function uploadFile () {
var selectedFile = document.getElementById('file');
---------- than same as you code ------------------
}
您的问题是,您从未填充引用dom元素的变量。 您应该确保在上载文件函数之前调用了函数handleFileSelect
但这很容易出错,很快就会遇到全局变量的问题。我建议您改进handleFileSelect以返回dom节点引用,并像这样使用它,而不是使用全局变量:
函数handleFileSelect(){
$(“.upload group”).show();
return document.getElementById('file').files[0];
};
函数uploadFile(){
var filename=handleFileSelect().name;
无法读取未定义的属性x-因此这看起来像[undefined]['name']
这意味着selectedFile
未定义,查看这部分代码,它从未定义,甚至未初始化。查看编辑var selectedFile;
它已初始化,但仍未定义。在上载文件之前,必须调用handleFileSelect
*不初始化,但分配/定义。>let variable;
已初始化,但仍未定义。我建议在同一上载函数中创建该变量,并使用javascript文档对其进行实例化。getElementById
我按照您所说的方式进行了操作,但出现了以下错误:firebase.storage不是上载文件时的函数您可能更改了其他内容。您使用哪种方法?我提出了两种方法:一种是将handleFileSelect添加到更改事件中,另一种是。您应该只选择一种,而不是同时选择两种。