我正在使用 OmniFaces's 2.6.1 inputFile 上传文件,并希望通过使用 accept 属性来应用媒体类型过滤,例如 accept="image/png" 。这适用于具有 .png 扩展名的文件名,但显然区分大小写。上传带有 .PNG 扩展名的文件时,验证失败。我尝试指定 accept="image/PNG"accept="image/*" ,但无济于事。

是否有一种简单的方法以不区分大小写的方式过滤媒体类型?

最佳答案

在幕后, <o:inputFile> 从服务器的 mime 映射派生 mime 类型,您可以通过 <mime-mapping> 中的 web.xml 条目进行控制。

我无法在 WildFly 12 上重现您的问题。显然您使用的服务器不对文件扩展名执行不区分大小写的匹配。

根据 issue 447,在咨询服务器管理的 mime 映射之前,我已经通过显式小写文件名将其修复为 2.6.9。目前,解决方法是将 PNG 扩展名的 mime 映射显式添加到您的 webapp 的 web.xml

<mime-mapping>
    <extension>PNG</extension>
    <mime-type>image/png</mime-type>
</mime-mapping>

请注意,这仍然不会匹配 PngpNGpNg 等。

关于jsf-2.2 - OmniFaces inputFile 不区分大小写的媒体类型过滤,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48790325/

10-15 05:58