您好,我正在使用 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/