【问题标题】:Best way to sort files by type depending on mimetype根据 mimetype 按类型对文件进行排序的最佳方法
【发布时间】:2017-11-04 21:07:41
【问题描述】:

这是我的挑战:

我有一个文件输入,我可以使用它选择多个文件。我可以轻松访问每个选定文件的 mimetype,并在将它们添加到上传队列之前对其进行操作。我想要做的是将这些文件分为 6 个类别。

我有这些物品:

files:{
   audio_type:[],
   video_type:[],
   image_type:[],
   pdf_type:[],
   text_type:[],
   other_type:[]
}

对于使用文件输入添加的每个文件,我希望能够将其放在上面我的文件对象的正确类别节点中。

问题是,对于每个类别,我只接受某些 mimetype。例如在“audio_type”中只有等于“audio/mpeg”或“audio/wav”的mime类型应该被推送,如果文件的mimetype不是其中之一,它被推送到“other_type”中

我想出了几个基本的解决方案,例如使用正则表达式“如果 mimetype 以 image 开头/* 将其放在 'image_type' 对象中”,但也许有更好/更快/可扩展的方法来做到这一点?另外,这种方法没有考虑我对某些 mimetype 的要求。

我在这里有大局,我应该能够自己做,但不是以我认为的最干净的方式。

【问题讨论】:

    标签: javascript angularjs file sorting mime-types


    【解决方案1】:

    您可以使用对象作为文件类型的哈希表,例如

    var types = { 
        "audio/mpeg": "audio_type",
        "audio/wav": "audio_type",
        // ...
        default:  "other_type"
    }
    

    用法:

    upload.files[types[object.filetype] || types.default].push(object);
    

    【讨论】:

    • 谢谢你,我会用这个,想不出更好的方法!
    猜你喜欢
    • 2021-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-19
    • 1970-01-01
    • 2010-09-07
    • 2021-12-22
    相关资源
    最近更新 更多