0

我正在使用 primefaces 3.3.1 和 liferay 6。

在我的portlet 中,我想为primefaces 添加fileUpload。但是每次当我的页面加载这个primefaces组件时,firebug都看不到这个组件。我需要让它的显示被阻止。

此外,由 javascript 方法或 ajax 组成的 fileUpload 下的任何组件都无法正常工作。

我注意到在萤火虫中,每当我的页面加载时,它都会向我显示一个错误,例如

this.form.fileUpload is not a function

我猜由于这个错误,我的 fileUpload 无法正常工作。但我无法修复它。

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

4 回答 4

1

将您的 primefaces 升级到 3.5 版并将 commons-fileupload 添加到您的项目中

于 2013-09-30T15:41:51.010 回答
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>

没有那个点就不行了...

于 2015-03-17T15:18:32.910 回答
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>

这是更多信息的链接。

于 2013-10-04T12:07:30.233 回答
0

我认为这是由于您没有在项目库中添加 commons-fileupload 和 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>

正如我之前所说,将 commons-fileupload 和 commons-io 添加到您的项目库中。

于 2013-10-02T09:59:30.993 回答