这是我的挑战:
我有一个文件输入,我可以选择多个文件。我可以轻松访问每个所选文件的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”
我提出了几个基本的解决方案,例如使用regexp“如果mimetype以image / *开头将它放在'image_type'对象中”,但也许有更好/更快/可扩展的方法呢?另外,这种方法不考虑我对某些mimetype的要求。
我在这里有大局,我应该能够自己做,但不是以我认为最干净的方式。
答案 0 :(得分:1)
您可以将对象用作文件类型的哈希表,例如
var types = {
"audio/mpeg": "audio_type",
"audio/wav": "audio_type",
// ...
default: "other_type"
}
用法:
upload.files[types[object.filetype] || types.default].push(object);