显然,我知道如何将DrivePicker小部件拖到表单中。但在那之后,我完全不知道如何像普通的上传控件那样工作。
我有一个文本框字段,右侧有一个谷歌驱动器图标。
文本框的名称为exemptionAttachment。
google驱动器图标在OnDocumentSelect和onDocumentSelect事件中包含以下代码:widget.parent.descendants.exemptionAttachment.value = result.docs [0] .id;
所有真正发生的事情是当用户点击驱动器图标时,他们从硬盘驱动器中选择一个文件,并将文件ID放在ExemptionAttachment文本框中。
因此,在提交表格后,表格或类似物品上没有附件。也许我错过了谷歌的观点,并且该文件应该存储在某个地方的谷歌驱动器中(尽管我没有把它与应用程序同步)。
所以基本上,我在表单中上传附件方面毫无头绪。
答案 0 :(得分:0)
如您所料,使用云端硬盘选取器挑选的文件应该存储在云端硬盘中,而不是应用程序中。因此,当您希望稍后通过应用程序使用这些文件时,您应该存储文件的ID或URL,而不是文件本身。
例如,我的数据源中有一个DocumentUrl字段。因此,我已将DrivePicker小部件的selectedDocUrl绑定到@ datasource.item.DocumentUrl。现在,窗口小部件将文档的URL保存到数据源中,稍后可以使用该链接。
我还使用脚本通过URL自动共享该文档,以便每个用户都可以实际访问该文档。
// DrivePicker onDocumentSelect event:
google.script.run.setSharingByUrl(widget.selectedDocId);
Serverside脚本:
// Shares Drive file by URL in domain, with comment privileges
function setSharingByUrl(fileId) {
var file = DriveApp.getFileById(fileId);
// Checking if file already has edit permission, since we don't want to lower that to comment permission
if (file.getSharingPermission() === DriveApp.Permission.EDIT){
return;
}
file.setSharing(DriveApp.Access.DOMAIN_WITH_LINK, DriveApp.Permission.COMMENT);
}
希望能帮助您更多地了解DrivePicker。
查看这些参考资料和样本以获得更多见解:
https://developers.google.com/appmaker/ui/widgets#drive_picker https://developers.google.com/picker/docs/reference#Feature
https://developers.google.com/appmaker/samples/drive-picker/ https://developers.google.com/appmaker/templates/document-approval