我在显示文件限制和文件类型验证错误信息时遇到问题。
我有文件上传组件:
<p:fileUpload fileUploadListener="#{someBean.handleFileUploadLeft}"
mode="advanced" auto="true" update=":messages
:Leftform:fileName :Leftform:deleteButton" sizeLimit="300000"
allowTypes="/(\.|\/)(gif|jpe?g|png)$/"/>
现在:
例如,当我上传大于300KB的文件时,我想在growl中获取无效的文件信息,而不是在组件下的messeges中。
有没有办法做到这一点? JQuery,CSS魔术呢?
我谷歌很多,我没有找到解决方案。 我也尝试实现自己的验证器,但没有成功,验证器没有启动。
有人可以帮忙吗?
xhtml的一部分:
<div class="container" style="text-align: center; margin-top: 20px">
<p:growl id="messages"></p:growl>
<div class="ui-grid">
<div class="ui-grid-row">
<div class="ui-grid-col-6"
style="border: 1px solid #eeeeee; margin-right: 10px; border-radius: 4px">
<h:form id="Leftform">
<h3 style="color: #125491">Zgłoszenie awarii</h3>
[...]
<p:panelGrid style="width: 490px; margin:auto">
<p:row>
<p:column style="width: 170px;">
<p:fileUpload
fileUploadListener="#{issueUserDataBean.handleFileUploadLeft}"
mode="advanced" auto="true" label="Dołącz obraz"
update=":messages :Leftform:fileName :Leftform:deleteButton"
sizeLimit="300000" allowTypes="/(\.|\/)(gif|jpe?g|png)$/"
invalidFileMessage="Obraz musi być w formacie: PNG, JPG, GIF "
invalidSizeMessage="Obraz nie może przekroczyć 300KB" />
</p:column>
<p:column
style="width: 250px; max-width: 250px; overflow: hidden !important; text-overflow: ellipsis; padding-left: 0px !important; white-space: nowrap">
<h:outputText title="#{issueUserDataBean.leftFileName}"
id="fileName" value="#{issueUserDataBean.leftFileName}" />
</p:column>
<p:column style="width: 34px; padding-right: 6px !important;">
<p:commandButton icon="ui-icon-close"
disabled="#{issueUserDataBean.isLeftFileLoaded eq false}"
title="Usuń obraz"
actionListener="#{issueUserDataBean.handleFileDeleteLeft}"
id="deleteButton" process="@this"
update=":messages :Leftform:fileName :Leftform:deleteButton"
styleClass="buttonSize">
</p:commandButton>
</p:column>
</p:row>
</p:panelGrid>
<p:panelGrid columns="2" style="margin:10px auto 0px">
<p:commandButton value="Dodaj zgłoszenie"
styleClass="buttonIssueUserSave"
action="#{issueUserDataBean.saveLeft}"
style="border: 1px solid #125491; color: #125491"
update=":Leftform :messages :IssueDataTableForm:IssueDataTable">
</p:commandButton>
</p:panelGrid>
</h:form>
</div>
</div>
</div>
</div>