使用jsf上传多个文件



我使用的是JSF2.2框架,使用primefaces,但我无法创建多个文件导入。我尝试过使用很多选项,但它不起作用

public static Collection getAllParts(Part Part(throws Servlet Exception,IOException{

HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();

return request.getParts().stream().filter(p -> part.getName().equals(p.getName())).collect(Collectors.toList());
}

public void submit((引发Servlet异常、IOException{

for (Part part : getAllParts(file)) {
String fileName = part.getSubmittedFileName();
InputStream fileContent = part.getInputStream();
// ... 
//
// E.g. https://stackoverflow.com/q/14211843/157882
}

}

但它仍然不起作用。此外,HttpServlet请求返回空值。请帮助我解决这个问题

使用jsf和Primefaces而不是servlet请求。

例如

在您的web.xml 中

<context-param>
<param-name>primefaces.UPLOADER</param-name>
<param-value>auto|native|commons</param-value>
</context-param>
<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>

在您的pom 中

<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
</dependency>

在您的.xhtml:中

<h:form id="uploadingForm" enctype="multipart/form-data">
<p:fileUpload listener="#{yourbean.handleFileUpload}" 
mode="advanced" dragDropSupport="false"
multiple="true" update="messages" sizeLimit="100000" fileLimit="3" /> 
</h:form>

在你的豆子里:

private List<UploadedFile> uploadedFiles;
public void handleFileUpload(FileUploadEvent event) {
uploadedFiles.add(event.getFile());
}

现在你可以处理上传文件列表上的文件了吗

你甚至可以查看文档

相关内容

  • 没有找到相关文章

最新更新