使用Podio中第三方应用程序中的文件很痛苦。
我正在制作的应用程序是Podio提供的webform的替代品。
在其中一些网络表单中,我需要最终用户上传最多5或6个文件。
截至目前,您必须将每个文件的2个请求上传到Podio。 1个上传文件的请求,另一个请求将文件附加到您创建的项目。
这经常打击PodioRateLimit。
更容易的是将所有文件编译成1个数组,然后上传并附加它。
如果已经可以,请提供文件。
答案 0 :(得分:4)
上传文件仍然必须逐个发生,Podio API不支持批量文件上传。但是,您不需要将每个文件的2个请求上传到Podio。它可能是:[文件数] + 1个请求。
因此,创建新项目可能是:
请求总数: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
答案 1 :(得分:0)
这是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
)));