为啥“HTML 文件选择”会更改所选文件的顺序并按字母顺序排序?

Posted

技术标签:

【中文标题】为啥“HTML 文件选择”会更改所选文件的顺序并按字母顺序排序?【英文标题】:why does "HTML file select" changes the order of selected files and sort them alphabetically?为什么“HTML 文件选择”会更改所选文件的顺序并按字母顺序排序? 【发布时间】:2015-09-30 04:39:56 【问题描述】:

我正在尝试获取由 html 中的“文件”输入选择的文件的名称:

<input type="file" class="filestyle" name="file-select[]" id="file-select" accept="image/*" multiple>

我为此编写了这段 javascript 代码:

$('#file-select').on("change", function()
    var selectedFiless = this.files;
    for (var i = 0; i < selectedFiless.length; ++i) 
        var name = selectedFiless.item(i).name;
        alert(name);
    
);             

但是,我注意到这些名称是按字母顺序排列的,而不是按选择顺序排列的。例如,如果我选择 z.jpg 然后选择 a.jpg,当我打印名称时,我有 a.jpg、z.jpg(字母顺序)。但我想要 z.jpg、a.jpg(选择顺序)。

【问题讨论】:

【参考方案1】:

它会根据您在系统中的sorted 出现。我的意思是,如果您在系统中设置了排序方式升序,那么无论您选择的顺序如何,它将按升序选择,反之亦然。我已经在您的code 中进行了测试,结果和我上面提到的一样。

一个 Demo 在您的本地系统中进行测试。

【讨论】:

【参考方案2】:

FileList 不表示用户选择的文件对应的索引的任何特定顺序

【讨论】:

以上是关于为啥“HTML 文件选择”会更改所选文件的顺序并按字母顺序排序?的主要内容,如果未能解决你的问题,请参考以下文章

为啥更改数组的顺序会导致超出时间限制?

如何从select2多选中的选项列表中删除选定的选项并按选择的顺序显示选定的选项

如何更改组合框选定值的显示顺序

为啥直接用数组填充范围并按索引进行索引时会获得2个不同的结果?

XSLT 转换 XML:选择 uuid 并按顺序排序

如果我在 jquery 绑定中更改,为啥 html 表的顺序不会改变?