richfaces fileupload无添加按钮并通过commandlink致电



我正在使用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>

最新更新