Jsf 限制Primefaces上载的扩展

Jsf 限制Primefaces上载的扩展,jsf,primefaces,filter,upload,Jsf,Primefaces,Filter,Upload,我正在尝试上载带有此组件的图片 <p:fileUpload value="#{partyCreationBean.file}" allowTypes="/(\.|\/)(gif|jpe?g|png)$/" sizeLimit="100000" description="Select Images" mode="simple" /> 我试着把它也放进去 allowTypes=“jpg” 还有很多其他的组合,但我仍然可以上传所有东西,我真的不明白为什么 提前感谢,, samuele

我正在尝试上载带有此组件的图片

<p:fileUpload value="#{partyCreationBean.file}" allowTypes="/(\.|\/)(gif|jpe?g|png)$/" sizeLimit="100000" description="Select Images" mode="simple" />

我试着把它也放进去

allowTypes=“jpg”

还有很多其他的组合,但我仍然可以上传所有东西,我真的不明白为什么

提前感谢,,
samuele

您需要对文件上载进行一些额外的配置 参考:

web.xml过滤器

<filter>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
<filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <servlet-name>Faces Servlet</servlet-name>
</filter-mapping>

PrimeFaces文件上载筛选器
org.primefaces.webapp.filter.FileUploadFilter
PrimeFaces文件上载筛选器
Facesservlet
例如:

<p:fileUpload fileUploadListener="#{fileUploadController.upload}" allowTypes="/(\.|\/)(gif|jpe?g|png)$/" sizeLimit="100000" description="Select Images"/>

这应该允许您的文件类型。。 您还需要确保有依赖项jar ApacheCommonsIO apachecommons文件上传


检查您的筛选器是否已启用。

allowTypes
p:fileUpload
mode=“simple”
中不起作用

可以使用
mode=“advanced”
来限制文件扩展名。

如果使用mode=“simple”,可以使用“accept”属性。
请参阅:

您想只允许jpg???更好,jpg,gif,png。但是程序允许我插入所有内容。。。zip,doc,我想要的一切。你是说它可以让你上传那些文件还是只选择那些文件?很抱歉我的无知,但你说“你还需要确保你有依赖jars Apache commons io,Apache commons file upload”是什么意思。。。我将它们复制到WEB-INF/lib中。。。然后我写了web.xml,然后?!真的很抱歉,但是我只在两周前处理了这些东西:/包括JAR满足依赖性要求,否则它会。如果你使用它,就像一个maven依赖,我很抱歉,但仍然不起作用。。。我部分解决了在WebBean中添加一个检查的问题,并在用户尝试上载不允许的扩展时显示一个错误。显然,拥有一个过滤器的想法更好(从用户的角度来看也是如此)。。。但我不能。上传程序总是向我显示任何文件。事实上,它确实有效。至少在素数面7上。0@AlexMi我很高兴你对我的答案发表了评论!自2017年初以来,我不再与PrimeFaces合作!