我正在使用Richfaces 4 FileUpload上传一个文件。
但是,就我而言,我只想单击一个链接并查看浏览器以选择文件。
所以在我的代码中,我有命令链接:
<a4j:commandLink id="showFileUpload"
execute="@this"
action="#{doSomething.Something(a)}"
render="@none"
oncomplete="#{rich:element('stratFileUpload')}.click();"
>
<h:graphicImage value="/images/A.png" />
</a4j:commandLink>
,fileupload的一部分只是其中带有fileupload的表格:
<h:form id="stratFileUploadForm">
<rich:fileUpload id="stratFileUpload" execute="@this"
fileUploadListener="#{doUploadedFile}"
onuploadcomplete="
jQuery(#{rich:element('stratFileUpload')}).find('.rf-fu-itm-lnk').click();
"
noDuplicate="true" maxFilesQuantity="1"
sizeExceededLabel="#{msg['sizeExceeded']}"
uploadLabel="#{msg['upload']}" />
</h:form>
我已经在命令链接中拨打ID表单和Rich:FileUpload ID,但没有任何可行。
唯一的工作方法是与弹出窗口一起使用,在这种情况下,它带有" add"按钮。
您确定它是Richfaces 2.0?
单击FileUpload什么都没做(就像手动单击一样(。您必须单击文件输入,例如
$(".rf-fu-btn-cnt-add input").click()
,但我不确定当按钮被隐藏时是否所有浏览器都允许您执行此操作。
问题是因为上传浏览器被Chrome阻止,在Chrome中,我无法访问浏览器以选择文件,但是在IE,Edge和Firefox中我可以看到那个浏览器。Chrome阻止浏览器文件(弹出(,因为操作与OnComplete之间的时间
代码的这一部分:
<a4j:commandLink id="showFileUpload"
execute="@this"
action="#{doSomething.Something(a)}"
...
</a4j:commandLink>