这是我的挑战:
我有一个文件输入,可以使用它选择多个文件。我可以轻松访问每个选定文件的 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的要求。
我这里有大局,我应该能够自己完成,但不是我认为的最干净的方式。
最佳答案
您可以使用对象作为文件类型的哈希表,例如
var types = {
"audio/mpeg": "audio_type",
"audio/wav": "audio_type",
// ...
default: "other_type"
}
用法:
upload.files[types[object.filetype] || types.default].push(object);
关于javascript - 根据 mimetype 按类型对文件进行排序的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44346128/