gpt4 book ai didi

jquery - 我可以使用 jquery 从具有 multiple 属性的输入 type=file 读取文件名数组吗?

转载 作者:行者123 更新时间:2023-12-01 07:06:24 26 4
gpt4 key购买 nike

使用 jquery 我可以从

获取输入的文件名(我只想要名称,而不是数据)
<form enctype="multipart/form-data">
<input type="file" id="id_myfile">
</form>

只需使用

$('#id_myfile').val();

但是如果我想使用 multiple 属性怎么办:

<form enctype="multipart/form-data">
<input type="file" id="id_myfile" multiple="multiple">
</form>

现在我得到一个包含多个文件名的逗号分隔列表。有没有办法使用数组作为输入名称

<form enctype="multipart/form-data">
<input type="file" name="name_myfile[]" multiple="multiple">
</form>

并将各个文件名放入数组中,如下所示:

$('input[name="name_myfile[]"]').eq(0).val())
$('input[name="name_myfile[]"]').eq(1).val())

等等?此方法不起作用并会导致未定义的错误。

我在这里读到这种方法(输入中的数组名称,而不是 jquery 部分)适用于提交的表单,使用 php 及其内置命名数组($_FILES 等)给出了几个示例。我们使用的是经典 ASP,但这不是重点,因为我在这里讨论的是客户端。文件名是否可以像我建议的那样以某种方式放入数组中以在 JavaScript 中读取?或者,是否有一种完全不同/更好的方法来从用户那里获取文件名列表(我的意思是,让用户浏览,当然不让他们输入名称)?

最佳答案

这可以在没有 JQuery 的情况下完成,检查这个 link .

var x = document.getElementById("name_myfile");

var files = x.files; //contains all files selected

var name = files[0].name; //contains the name of the first file

文件数组还包含每个文件的大小(以字节为单位)。要获取文件名而不是完整路径,请检查此 one

从链接复制代码并进行修改以适合示例:

if (name) {
var startIndex = (name.indexOf('\\') >= 0 ? name.lastIndexOf('\\') : name.lastIndexOf('/'));
var filename = name.substring(startIndex);
if (filename.indexOf('\\') === 0 || filename.indexOf('/') === 0) {
filename = filename.substring(1);
}
alert(filename);
}

关于jquery - 我可以使用 jquery 从具有 multiple 属性的输入 type=file 读取文件名数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42701174/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com