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>
请注意,这仍然不匹配 Png
、pNG
、pNg
等
我正在使用 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>
请注意,这仍然不匹配 Png
、pNG
、pNg
等