Javascript JS和type.match作为文件mime类型-需要建议吗
今天,我遇到了一件有趣的事情,FF文件API和按类型划分的文件。好的,这里有一个小片段Javascript JS和type.match作为文件mime类型-需要建议吗,javascript,firefox,google-chrome,file-io,fileapi,Javascript,Firefox,Google Chrome,File Io,Fileapi,今天,我遇到了一件有趣的事情,FF文件API和按类型划分的文件。好的,这里有一个小片段 if (!input.files[0].type.match('image.*')) { window.alert("Select image please"); return; } 它控制图像为只读。但以文档文件和pdf为例呢?我找不到这方面有用的例子,所以我希望你能分享一些片段。我感兴趣的是检测不同的文件类型,但是如何使用JS及其type.
if (!input.files[0].type.match('image.*')) {
window.alert("Select image please");
return;
}
它控制图像为只读。但以文档文件和pdf为例呢?我找不到这方面有用的例子,所以我希望你能分享一些片段。我感兴趣的是检测不同的文件类型,但是如何使用JS及其type.match绑定控制不同的文件类型呢
是基本代码吗
任何有用的注释都非常感谢:)因此基本思想是此代码使用文件对象,有关它们的更多信息,请参阅:
- (规范)
- (Mozilla实现)
type
属性是MIME类型。这是在中定义的。但是规范本身并不是最有趣的部分,更有趣的是现有MIME类型或最常用类型的列表
在这段代码中,他们使用type
属性并对其执行regexp(有关更多信息,请参阅和)。他们的regexp表示,如果类型包含image
,就可以了
要制作您自己的选择器,您必须将上述内容组合起来。(一些示例使用===而不是match,因为mime类型是整个类型)
例如,可以进行以下检查:
- 文档(不仅仅是pdf,odt也有这种类型,例如):
input.files[0]。type==='application/pdf'
- 音频:
input.files[0]。键入.match('audio.*')
- 视频:
input.files[0]。键入.match('video.*')
input.files[0].name.match('\.pdf')来查看它是否为.pdf、a.odt…),则可以在文件的name
属性上使用选择器。
但是我不建议这样做,因为用户可以轻松地使用它(删除或更改它们)。这可能会有帮助:
file.mimetype.match('text.*|image.*|application.*')
这将检查所有可接受的mime类型是否确实有效?类型属性应该是file
no?您所指的类型是accept
属性,该属性可以接受任何MIME类型值。是的,它可以工作并使您仅获取图像以外的文件。但我想看看如何对文档或pdf文件执行相同的操作?嗯。。。谢谢你的链接。“text/html”、“image/x-rgb”或“application/java”)可能就是重点。我不太确定它是否是accept file属性,因为JS使用image.*作为它的if操作符:(所以我需要你的建议我应该看什么?据我所知,.match(image.*)
匹配图像中的每个字符串。但为了帮助我重现您的案例,我需要提供输入对象的html/js。好的,我刚刚编辑了我的问题。请观看-我将“视频”一个添加到我现有的“图像”一个中,效果很好!如果(!file.type.match(/^image\/)&!file.type.match(/^video\/){;可能值得一提的是,这不是一个100%完整的解决方案。例如,我拥有的示例.mkv文件的file.type
是一个空字符串。