我对PrimeFaces的p:fileUpload
更新有一个奇怪的问题。我上传了一张图片并将其保存在数据库中,这已经有效了。
这是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?&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 :(得分:0)
在代码中
&preview=true之前有一个额外的空格。我在这里使用 * * *强调它:
<p:graphicImage value="#{facesContext.externalContext.contextName}/showProfileImage?*****&preview=true" alt="#{playerController.selected.image.name}"/>
删除空格并尝试一下。可能是FF和IE不喜欢这个空间而且Chrome很容易
答案 1 :(得分:0)
您是否尝试删除项目中使用的模板/ css组件?我有同样的问题,我注意到,如果我删除所有这些组件,它工作正常。