javascript - HTML 输入文件按用户选择顺序多重排序

标签 javascript html

如果一个用户选择了多个文件,需要按照用户选择的优先级排序(比如facebook)。 FileList 需要取决于用户顺序。

这是一个示例代码:

  function handleFileSelect(evt) {
    var files = evt.target.files; // FileList object

    // files is a FileList of File objects. List some properties.
    var output = [];
    for (var i = 0, f; f = files[i]; i++) {
      output.push('<li><strong>', escape(f.name), '</strong> (', f.type || 'n/a', ') - ',
                  f.size, ' bytes, last modified: ',
                  f.lastModifiedDate ? f.lastModifiedDate.toLocaleDateString() : 'n/a',
                  '</li>');
    }
    document.getElementById('list').innerHTML = '<ul>' + output.join('') + '</ul>';
  }

  document.getElementById('files').addEventListener('change', handleFileSelect, false);
<input type="file" id="files" name="files[]" multiple />
<output id="list"></output>

当你选择第二个文件时,它总是改变顺序,它比第一个文件靠上。
请检查图像

enter image description here 我选择了第一张图片,名字是89......*

enter image description here 当我从第一张图片中选择上面的第二张图片时,名称顺序发生了变化。并且 FileList 也发生了变化。请帮助我获得用户选择的订单。谢谢。

(我也尝试过从文件夹中随机选择许多图像,但最终结果是自动排序的)

最佳答案

您正在使用操作系统提供的文件选择器,这就是它在 Windows 中的工作方式。您无法更改其行为,并且在其他操作系统(Linux、MacOS)上可能有所不同。如果顺序对于您的目的来说是必不可少的,那么您可以实现自己的自定义控件,但这样您就失去了重用用户熟悉的便捷内置功能的好处。

另一种方法是允许您的用户在单击打开 并且您已处理输入后自定义顺序。这将让他们使用熟悉的界面但可以选择,但可以灵活控制顺序。如果您这样做,那么我建议首先按文件名对它们进行一致的排序,以便操作在操作系统之间保持一致。

关于javascript - HTML 输入文件按用户选择顺序多重排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58694968/

相关文章:

javascript - html注入(inject)中的jQuery脚本执行顺序

javascript - 如何让输入文件按钮对从桌面拖放有用,但避免本地重定向

javascript - 从文章标签的数据属性列表创建一个数组

javascript - 如何在angularJS中将字符串转换为数组

javascript - 比较两个具有相同大小的差异数组

javascript - 在 react js 状态下更新 json 数组

javascript - 用于 CSS 过渡和动画的 PolyFill/Shim

javascript - Netbeans 8.0.2 中 Cordova 应用程序的 CORS 问题

javascript - 使用键属性显示不同的值

javascript - 无法使用 .data(el ,'dataname' ).sublev 获取数据对象