javascript - 上传文件 jquery 时未捕获类型错误

标签 javascript jquery typeerror

您好,我正在使用 from 将歌曲上传到我的 WordPress 网站上。我使用一个表单,人们可以将一个/多个歌曲文件上传到服务器。

我的表格是:

<form enctype="multipart/form-data" action="" method="post">
  <input type="file" name="songs[]" id="songs" multiple="multiple">
  <input type="submit" value="submit">
</form>

我想在使用表单选择文件后获取文件名(在按提交之前)。

我使用了这段代码:

var song_file = jQuery('#songs')[0].files[0]
  if(song_file){
  alert(song_file.name);
}

var filename = jQuery('#songs').prop("files")[0]['name'];
alert(filename);

但是控制台出现错误: 未捕获类型错误:无法读取未定义的属性“名称”

我该如何解决这个问题?

我如何使用该文件获取完整的 URL?

例如:一个网址是:http://website.com/wp-content/uploads/2015/12/mp Threetest.mp3

另一个地址是:http://website.com/wp-content/uploads/2013/09/mp Threetest.mp3

所以我只需要在网址上固定日期,然后我将从代码中获取文件名

最佳答案

Uncaught TypeError: Cannot read property 'name' of undefined

它可能指的是 jQuery('#songs').prop("files")[0]['name']

以下是一个空的 jQuery 对象:

jQuery('#songs').prop("files")

要回答您的问题“我如何解决这个问题”,首先要了解选择器的原因jQuery('#songs').prop(“files”)不匹配任何内容。

编辑

检查 ID 为 songs 的元素,您能看到 files 属性吗?它是一个数组吗?它含有什么东西吗?第一个元素是否包含名称属性?

您的错误也可能来自 alert 行:alert(song_file.name);

只需检查控制台,它就会将您指向正确的行。

关于javascript - 上传文件 jquery 时未捕获类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34290866/

相关文章:

javascript - 如何在jqGrid单元格编辑中只允许数字?

javascript - Openfire:在 openfire 服务器中使用 SASL Anonymous 创建用户

javascript - angular handle @sign in view path 如何处理?

javascript - 有人可以解释一下参数如何传递该值吗?

javascript - Codemirror 编辑器未加载文本区域的内容

javascript - HTML5拖放传输时调整div

javascript - 调整窗口大小后重置切换类

node.js - mongodb nodejs db.collection 不是函数

Python 类型错误 : 'int' object is not iterable despite proper assignment

python - 类型错误:强制转换为 Unicode:需要字符串或缓冲区,找到文件(open() 函数)