2017-08-21 47 views
0

很明顯,我知道如何將DrivePicker小部件拖動到窗體上。但在那之後,我對如何像普通上傳控件一樣工作完全無能爲力。當使用DrivePicker小部件時完全丟失了

我有一個文本框字段,右邊是谷歌驅動器圖標。

該文本框的名稱爲exemptionAttachment。

谷歌驅動器圖標在OnDocumentSelect和onDocumentSelect事件代碼:widget.parent.descendants.exemptionAttachment.value = result.docs [0] .id;

真正發生的情況是,當用戶點擊驅動器圖標時,他們從硬盤驅動器中選擇一個文件,並將文件ID放入「豁免附件」文本框中。

所以在提交表單後,沒有附件附加到表單或類似的東西。也許我錯過了Google的觀點,並且該文件應該存儲在谷歌驅動器的某個地方(儘管我沒有把它同步到應用程序中)。

所以基本上,我在表單上上傳附件方面有點無知。

回答

0

正如您懷疑的那樣,使用Drive Picker挑選的文件應該存儲在Drive中,而不是您的應用程序中。因此,如果您想稍後通過應用程序使用這些文件,則應該存儲文件的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

+0

謝謝!現在,我有一個包含Google雲端硬盤中附件文件路徑的字段。因此,查看附件(也許我應該停止使用該術語)的用法必須將該URL複製並粘貼到另一個瀏覽器窗口中? –

+0

您可以在鏈接小部件中使用「文件路徑」,以便用戶單擊它時自動打開。 – ilvo

+0

工作。再次感謝! –

相關問題