当前位置: 首页 > 知识库问答 >
问题:

在p: fileUpload中完成多次上传时?

竺绍辉
2023-03-14

我有一个多p: fileUpload,我需要在服务器上上传1到N个文件,上传后我需要知道上传了多少个文件,然后开始处理方法。我怎么知道所有文件何时上传?我没有找到任何多次上传的事件,只有单个文件有事件,p: fileUpload中的on完成也适用于每个文件单独。我有想法使用附加按钮来调用处理方法,但这不安全,因为用户可以在所有文件上传之前按此按钮。谁能给我一些建议?

共有2个答案

傅峻
2023-03-14

可以验证模式对话框,直到完成该过程,并在关闭对话框时结束。

蒙经纶
2023-03-14

对于其他可能面临同样问题的人。

文件上载组件具有“files”属性,其中包含要上载的文件列表。一旦上传了文件,它就会从“文件”数组中删除,因此当上传最后一个文件时,“文件”将为空。这可以用来检测上传最后一个文件的时刻。之后,您可以触发远程命令来执行任何您想要的操作。

代码示例:

<h:form enctype="multipart/form-data">
    <p:fileUpload id="files"
             widgetVar="fileUploadWidget"
             mode="advanced"
             multiple="true"
             oncomplete="handleMultiFileUploadRequest(PF('fileUploadWidget'), validateFiles);"/>

    <p:remoteCommand name="validateFiles" actionListener="#{Your action}"/>

    <script type="text/javascript">
        function handleMultiFileUploadRequest(fileupload, remoteButton) {
            if (fileupload.files.length === 0) {
                if (remoteButton) {
                    remoteButton();
                }
            }
        }
    </script>
</h:form>
 类似资料:
  • 我试图用python写的lambda (aws)完成多部分上传。下面是我正在使用的代码。大约有120个部件,总大小为30GB。下面的操作似乎没有在5分钟内完成,因此lambda关闭,上传似乎没有完成。S3提供异步多部分上传功能吗?我相信这将确保文件得到合并,不管lambda关闭。

  • 接口说明 通知上传文件完成 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /wish3dearth/api/material/upload/v1.0.0/uploadComplete 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 token string header 是 当前登录用户的TOKEN data

  • 接口说明 通知上传文件完成 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 如开启https功能,请求地址的协议应改为https,如:https://www.example.com/wish3dearth/api/access/v1.0.0/getLicenseInfo API地址 POST /wish3dearth/api/material/uploa

  • 的控制台输出是正确的,我相信使用的是正确的。 上载的控制台输出如下: 然而,当我查看firebase存储时,新文件夹和图像不在那里。火药库没有变化。为什么它实际上不储存在仓库里?

  • 比如说,我有多个迁移文件更新单个表。 例如 ... 来自不同团队成员的回购协议。每个都在调整表中的某些内容,例如添加一列。 当我试图: 我得到一个错误: 一个人应该如何处理上述情况? 编辑 下面是代码: 2016_03_20_072730_create_tasks_table.php: 2016_03_20_075467_create_tasks_table.php:

  • 问题内容: 在我的程序执行过程中,启动了多个线程。线程数量取决于用户定义的设置,但是它们都使用不同的变量执行相同的方法。 在某些情况下,需要在执行过程中进行清理,其中一部分是停止所有线程,尽管我不希望它们立即停止,我只是设置了一个变量来检查它们是否终止。问题在于线程停止之前最多可能需要1/2秒。但是,我需要确保所有线程都已停止,然后才能继续进行清理。清理是从另一个线程执行的,因此从技术上讲,我需要