2013-09-25 83 views
0

我正在使用primefaces 3.3.1和liferay 6.PrimeFaces的Fileupload在我的liferay portlet中不起作用?

在我的portlet中,我想爲primefaces添加fileUpload。但每次我的頁面加載時,這個primefaces組件都不可見通過螢火蟲。我需要讓它的顯示屏阻止。

此外,由javascript方法或ajax組成的fileUpload下的任何組件都不起作用。

我注意到,在Firebug每當我的頁面加載它顯示我有一個錯誤,如

this.form.fileUpload is not a function 

我想由於這個錯誤我的文件上傳不工作。但我無法修復它。

<p:fileUpload fileUploadListener="#{fileUploadController.handleFileUpload}" mode="advanced" fileLimit="3"/> 

回答

1

升級primefaces到3.5版本,並添加公地文件上傳到您的項目

0

我認爲這造成你沒有添加公地文件上傳和commons-io的在您的項目庫。另外,別忘了在web.xml中定義FileUploadFilter。

讓我告訴你我是如何在我的primefaces文件上傳之前,希望這個例子可以解決你的問題。

我的XHTML頁面:

<p:fileUpload allowTypes="/(\.|\/)(csv)$/" fileUploadListener="#{fileBean.handleFileUpload}"/> 

我FileBean.java:

public class FileBean { 
private UploadedFile file; 

public void handleFileUpload(FileUploadEvent event) throws Exception { 
    file = event.getFile(); 

    InputStream input = file.getInputstream(); 
    OutputStream output = new FileOutputStream(new File("D:/UploadedFile/", file.getFileName())); 

    IOUtils.copy(input, output); 
} 

添加到您的web.xml:

<filter> 
<filter-name>PrimeFaces FileUpload Filter</filter-name> 
<filter-class> 
    org.primefaces.webapp.filter.FileUploadFilter 
</filter-class> 
</filter> 

正如我之前所說的,添加公地-fileupload和commons-io到您的項目庫。

0

修復了Liferay Portal 6.0.x中的這個問題。

您可以將此代碼添加到web.xml並嘗試它嗎?

<!-- Workaround for PrimeFaces 3.2: --> 
<context-param> 
<param-name>com.liferay.faces.bridge.primeFileUploadForceResourceURL</param-name> 
<param-value>true</param-value> 
</context-param> 

Here is link欲瞭解更多信息。

0

試圖關於web.xml中,pom.xml的一切後,...我又重新回到了明顯的事情:-)

也許你只是忘記環繞上傳元素的形式:

<h:form enctype="multipart/form-data"> 

<p:fileUpload mode="simple" value="#{mgr.file}"/> 

<p:commandButton value="Hochladen" ajax="false" onclick="start();" 
       action="#{mgr.uploadBescheid(bescheidTyp)}" update="growl"/> 
</h:form> 

沒有這一點,它不會工作...