OmniFaces inputFile 不区分大小写的媒体类型过滤

OmniFaces inputFile case insensitive media type filtering

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

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

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

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

根据issue 447,我在查阅server-managed mime 映射之前,通过显式将文件名小写化,将其修复为2.6.9。目前,解决方法是为 PNG 扩展显式添加 mime 映射到您的网络应用程序的 web.xml.

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

请注意,这仍然不匹配 PngpNGpNg