【问题标题】:Uploading multiple files with one request in Podio (suggestion)在 Podio 中通过一个请求上传多个文件(建议)
【发布时间】:2016-09-21 11:19:38
【问题描述】:

在 Podio 中处理来自第三方应用程序的文件很痛苦。

我正在制作的应用程序是 Podio 提供的网络表单的替代品。

在其中一些网络表单中,我需要最终用户上传最多 5 或 6 个文件。

截至目前,您必须为每个上传到 Podio 的文件发出 2 个请求。 1 个请求上传文件,另一个请求将文件附加到您创建的项目。

这不断达到 PodioRateLimit。

更简单的方法是将所有文件编译成 1 个数组,然后上传并附加。

如果这已经可行,请提供文档。

【问题讨论】:

    标签: php podio


    【解决方案1】:

    上传文件仍然需要一个一个的进行,并且 Podio API 不支持批量文件上传。然而,您不需要每个上传到 Podio 的文件有 2 个请求。它可能是:[文件数] + 1 个请求。

    因此,对于创建新项目,它可能是:

    1. 上传文件1
    2. 上传文件2
    3. 上传文件3
    4. 上传文件4
    5. 使用所有上传的文件创建新项目

    请求总数:5(文件数+1)

    files = [<array of file names>]
    file_ids = []
    files.each do |filename|
      uploaded_file = Podio::FileAttachment.upload(File.open(filename), File.basename(filename))
      file_ids << uploaded_file.file_id
    end
    new_item = Podio::Item.create(<app_id>, 'fields' => {'title' => 'My title'}, 'file_ids' => file_ids)
    

    更新现有项目几乎相同,只需要调用 Item.update 而不是 Item.create。
    附:抱歉,示例使用的是 Ruby,而不是 PHP

    【讨论】:

    • 嗯,它肯定会将我的请求减半,但如前所述,这是对 podio 实现文件批量上传的建议。不过还是谢谢你的建议。
    • 嗯,Podio 不是文件管理工具,而是更广泛的解决方案,因此可能不会优先考虑批量文件上传,但我会将您的请求传递给 Podio 团队 :) 另外,您能否接受答案如果有用的话。这将使未来的用户更快地找到它。
    【解决方案2】:

    这是 php 的工作代码:

        $field_id = 'photos';
        foreach($photos as $photo){
            // Upload file
            $file = PodioFile::upload("uploads/".$photo, $photo);
            $fileID[] = (int)$file->file_id;
        }
    
    
            PodioItem::update((int)$item->item_id, array(
                'fields' => array(
                    "photos" => $fileID
                )));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-30
      • 2015-03-17
      • 2018-01-24
      • 1970-01-01
      • 1970-01-01
      • 2018-09-14
      相关资源
      最近更新 更多