我使用的是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());
}
现在你可以处理上传文件列表上的文件了吗
你甚至可以查看文档