我正在使用 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>
请注意,这仍然不会匹配
Png
、 pNG
、 pNg
等。关于jsf-2.2 - OmniFaces inputFile 不区分大小写的媒体类型过滤,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48790325/