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>

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

HTML输入文件按用户选择顺序进行多种排序

我选择了第一张图片,名称为89 ...... *

HTML输入文件按用户选择顺序进行多种排序

当我从第一张图片中选择第二张图片时,名称顺序发生了变化。而且FileList也改变了。请帮助我以用户选择的身份获得订单。谢谢。

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

inuyasha7 回答:HTML输入文件按用户选择顺序进行多种排序

您正在使用操作系统提供的文件选择器,这就是Windows中它的工作方式。您不能更改其行为,并且在其他操作系统(Linux,MacOS)上可能有所不同。如果订单对于您的目的至关重要,则可以实现自己的自定义控件,但是您将失去重用用户熟悉的便捷内置功能的好处。

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

本文链接:https://www.f2er.com/3166190.html

大家都在问