(1)Jars
添加commons-fileupload-1.2.2.jar and commons-io-1.4.jar到web-inf/lib目录下
(2)web.xml
添加如下配置到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>
(3)*.xhtml
<h:form enctype="multipart/form-data">
<p:fileUpload value="#{fileBean.uploadedFile}" mode="simple" />
<p:commandButton value="Submit" ajax="false"/>
</h:form>
Note:(1)Please note the
enctype="multipart/form-data"
attribute of the form. This is mandatory for HTML in order to be able to send files to the server. The filter is mandatory for JSF in order to extract the data from multipart/form-data
requests. Without either of them, either the command action won't be invoked, or all properties will be null
.
(2)simple upload doesn't support ajax. should add ajax="false"
on commondButton
(4)Manager Bean
public class FileUploadController {
private UploadedFile uploadedFile;
public FileUploadController() {
}
public UploadedFile getUploadedFile() {
return uploadedFile;
}
public void setUploadedFile(UploadedFile uploadedFile) {
this.uploadedFile = uploadedFile;
}
public void submit() {
// Get information you from the uploaded file
System.out.println("Uploaded file name : " + uploadedFile.getFileName());
}
}
在写这篇文章时,还有个问题没有解决,就是上传文件的名称为中文时,保存的文件名为乱码,期待完善中.