1

p:fileUpload对 PrimeFaces 的更新有一个奇怪的问题。我上传了一张图片并将其保存在数据库中,这已经开始工作了。这是我的代码p:fileUpload

<p:fileUpload fileUploadListener="#{playerController.handleFileUpload}" 
        allowTypes="/(\.|\/)(gif|jpe?g|png)$/"
        update="messagePanel preview" />

上传后,我渲染了一个h:panelGroup显示图像的图像。

<h:panelGroup id="preview">
    <p:graphicImage value="#{facesContext.externalContext.contextName}/showProfileImage?&amp;preview=true" alt="#{playerController.selected.image.name}" />
    <h:outputText value="#{playerController.selected.image.name}" />
</h:panelGroup>

在 Google Chrome 中一切正常,但在 Firefox 和 Internet Explorer 中,当我已经上传图像时,图像不会呈现。旧图像仍然出现。刷新页面后,新图像就在那里。

在 FireBug 中,我收到以下消息:“NS_ERROR_NOT_IMPLEMENTED:组件返回失败代码:0x80004001 (NS_ERROR_NOT_IMPLEMENTED) [nsIDOMLSProgressEvent.input]”

我将所有浏览器都更新到了最新版本,并且我使用的是 PrimeFaces 3.5。

4

2 回答 2

0

您是否尝试过删除您在项目中使用的模板/css 组件?我有同样的问题,我注意到如果我删除所有这些组件它工作正常。

于 2013-06-21T23:55:58.520 回答
0

前面有一个额外的空格

&预览=真
在你的代码中。我在这里使用* * * 强调它:

<p:graphicImage value="#{facesContext.externalContext.contextName}/showProfileImage?*****&amp;preview=true" alt="#{playerController.selected.image.name}"/>

删除空格并尝试一下。可能是 FF 和 IE 不喜欢空间和 Chrome 是 linient

于 2013-06-12T21:05:00.827 回答