2013-06-12 36 views
1

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

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

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

在Firebug我得到这个消息:“NS_ERROR_NOT_IMPLEMENTED:组件返回故障代码:0x80004001(NS_ERROR_NOT_IMPLEMENTED)nsIDOMLSProgressEvent.input]”

我在我所有的浏览器更新到最新版本,我使用PrimeFaces 3.5。

回答

0

代码中的

&preview=true
之前有一个额外的空格。我使用 * * *在这里强调的是:

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

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

+0

我删除它,但不幸的是它没有改变任何东西。 – stone

0

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

相关问题