2012-03-20 116 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過濾器。

我有類似的問題,我按照該帖子的提示工作。