2012-03-20 104 views
1

我想用简单的表单上传文件,但它只是一直返回到同一页面。为了找到错误或者其他的错误,我只想在输出中写上我上传文件的名字。一旦我能得到文件名,我想我可以处理如何处理整个文件。所以这是我的代码:在JSF primefaces上传文件

<h:form enctype="multipart/form-data">  
      <h:outputText value="Argazkia: "/> 
      <p:fileUpload value="#{jokoBerriaController.file}" mode="simple"/> 
      <p:commandButton value="Bidali" ajax="false" actionListener="#{jokoBerriaController.upload()}"/> 
</h:form> 

控制器:

import javax.faces.bean.ManagedBean; 
import org.primefaces.model.UploadedFile; 

@ManagedBean 
public class jokoBerriaController { 

    public static UploadedFile file; 

    public UploadedFile getFile() { 
     return file; 
    } 

    public void setFile(UploadedFile file) { 
     this.file = file; 
    } 

    public void upload() {   
     System.out.println("file " + file.getFileName()); 
    } 
} 

我已经在我的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> 

,但我还没有加入commons- io和commons-fileupload库。我读过,我必须把我的pom.xml文件中的下一个代码,但我找不到该文件。

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

感谢您的帮助。

PD:对不起我的英文。

+0

属性“allowTypes”限制文件类型。另请参阅的其他属性。 2013-03-07 18:41:04

回答

0

你加:

<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> 

到你的web.xml文件,并添加的commons-IO和commons-文件上传到你的库路径?

+0

我已经编辑了我的问题。如果能继续帮助我,我真的很满意。 – ferpinan 2012-03-21 08:51:14

1

如果找不到pom.xml,那么您不是使用maven构建应用程序,因此您只需将下载的jar文件复制到您的WEB-INF/lib文件夹。下载commons-fileupload-1.2.2.jar和commons-io-1.4并将其添加到该文件夹​​。

1

This post was really helpful

您需要注意所有的细节。所有依赖关系必须包含在WEB-INF/lib中,并且必须正确声明web.xml中的servlet过滤器。

我有类似的问题,我按照该帖子的提示工作。