我有这段代码上传文件:
<p:dialog id="addFileDialog"
header="#{text['tasksbacking.attach.addFile']}"
widgetVar="addfile"
height="500"
width="500"
closeOnEscape="true"
resizable="false"
draggable="false"
fitViewport="true"
modal="true"
appendTo="@(body)">
<h:form enctype="multipart/form-data">
<p:fileUpload fileUploadListener="#{attachmentsComponent.handleFileUpload}"
mode="advanced"
multiple="true"
dragDropSupport="true"
allowTypes="/(\.|\/)(gif|jpe?g|png|pdf|doc|docx|txt)$/"
label="#{text['tasksbacking.addFile.choose']}"
uploadLabel="#{text['tasksbacking.addFile.upload']}"
cancelLabel="#{text['tasksbacking.addFile.cancel']}"/>
</h:form>
<p:ajax event="close"
update=":#{cc.clientId}:addFileDialog,:#{cc.clientId}:formAttachForm:attachTree,:#{cc.clientId}:formAttachForm:msgTreeAction,:#{cc.clientId}:attachContainer" listener="#{attachmentsComponent.onCloseUpload}"/>
</p:dialog>
使用此代码,我可以在关闭对话框时上传文件。但是,如果不刷新页面,我就无法执行另一个AJAX操作。当我不上传文件作为第一个动作时,其他动作执行良好。
在不刷新页面的情况下执行转发操作可能会出现什么问题?表单的enctype
可能是问题吗?
答案 0 :(得分:3)
我遇到了与enctype =&#34; multipart / form-data&#34;相同的问题。形式,我看到这个问题:
在我使用这个答案之后:
最后,它有效!
基本上,组件p:fileUpload的重新渲染/自定义工作正常,这是一个主要的错误。