我的表单有 2 个字段,假设表单的名称是CV Drops
- Name
- 上传文件按钮
因此,默认情况下,当人们上传文件时,它将保存在我的 Google Drive 文件夹下CV Drops。我想要的是根据字段中的输入将文件放置在子文件夹中NAME
.
我怎么做?
我相信您目前的情况和目标如下。
- Your Google Form has 2 fields.
- Name
- 上传文件按钮(此时可以上传多个文件。)
- 这两个字段均设置为必填字段。
- 您想要将上传的文件移动到特定文件夹,该文件夹的名称来自第一个问题“名称”的答案。在这种情况下,您希望将该文件夹创建为文件夹中的子文件夹。
为了实现您的目标,我想使用 Google Apps 脚本。
Usage:
1. 示例脚本。
请将以下脚本复制并粘贴到 Google Form 的容器绑定脚本中。请设置您要创建的子文件夹的顶级文件夹 ID。如果要在根文件夹中创建子文件夹,请设置root
.
function onFormSubmit(e) {
const folderId = "###"; // Please set top folder ID of the destination folders.
const form = FormApp.getActiveForm();
const formResponses = form.getResponses();
const itemResponses = formResponses[formResponses.length-1].getItemResponses();
Utilities.sleep(3000); // This line might not be required.
// Prepare the folder.
const destFolder = DriveApp.getFolderById(folderId);
const folderName = itemResponses[0].getResponse();
const subFolder = destFolder.getFoldersByName(folderName);
const folder = subFolder.hasNext() ? subFolder.next() : destFolder.createFolder(folderName);
// Move files to the folder.
itemResponses[1].getResponse().forEach(id => DriveApp.getFileById(id).moveTo(folder));
}
2. 安装 OnSubmit 触发器。
请将 OnSubmit 事件触发器安装为可安装触发器。Ref https://developers.google.com/apps-script/guides/triggers/installable#managing_triggers_manually
3.测试脚本。
为了测试示例脚本和触发器,请打开 Google 表单并输入名称并上传文件并提交。这样,脚本将通过触发可安装的 OnSubmit 触发器来运行。并且,上传的文件被移动到所创建的文件夹名称为“Name”的文件夹中。
在此示例脚本中,当存在相同的文件夹名称时,文件将放入现有文件夹中。
Note:
- 这是一个简单的示例脚本。所以请根据您的实际情况进行修改。
参考:
- 可安装的触发器 https://developers.google.com/apps-script/guides/triggers/installable
- 移动到(目的地) https://developers.google.com/apps-script/reference/drive/file#movetodestination
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)