Google 表单根据提交的值将文件上传到特定的新文件夹
Google Form Upload files to specific new folder based on the value submitted
我有一个包含 2 个字段的表单,假设表单的名称是 CV Drops
- 姓名
- 上传文件按钮
因此,默认情况下,当人们上传文件时,文件将保存在我的 Google 驱动器文件夹 CV Drops 下。我想要的是根据字段 NAME
.
中的输入将文件放置在子文件夹中
我该怎么做?
我相信你的现状和目标如下。
- 您的 Google 表单有 2 个字段。
- 姓名
- 上传文件按钮(在这种情况下,可以上传多个文件。)
- 两个字段都设置为必填字段。
- 您想将上传的文件移动到具有第一个问题“名称”答案中的文件夹名称的特定文件夹。在这种情况下,您希望将文件夹创建为文件夹中的子文件夹。
为了实现您的目标,我想使用 Google Apps 脚本。
用法:
1。示例脚本。
请将以下脚本复制并粘贴到 Google 表单的 container-bound 脚本中。请设置要创建的子文件夹的顶级文件夹 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
3。测试脚本。
为了测试示例脚本和触发器,请打开 Google 表单并输入名称并上传文件并提交。这样,通过触发可安装的 OnSubmit 触发器,脚本是 运行。并且,上传的文件被移动到创建的文件夹,文件夹名称为“Name”。
在此示例脚本中,当存在相同文件夹名称时,文件将被放入现有文件夹。
注:
- 这是一个简单的示例脚本。所以请根据自己的实际情况修改。
参考文献:
我有一个包含 2 个字段的表单,假设表单的名称是 CV Drops
- 姓名
- 上传文件按钮
因此,默认情况下,当人们上传文件时,文件将保存在我的 Google 驱动器文件夹 CV Drops 下。我想要的是根据字段 NAME
.
我该怎么做?
我相信你的现状和目标如下。
- 您的 Google 表单有 2 个字段。
- 姓名
- 上传文件按钮(在这种情况下,可以上传多个文件。)
- 两个字段都设置为必填字段。
- 您想将上传的文件移动到具有第一个问题“名称”答案中的文件夹名称的特定文件夹。在这种情况下,您希望将文件夹创建为文件夹中的子文件夹。
为了实现您的目标,我想使用 Google Apps 脚本。
用法:
1。示例脚本。
请将以下脚本复制并粘贴到 Google 表单的 container-bound 脚本中。请设置要创建的子文件夹的顶级文件夹 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
3。测试脚本。
为了测试示例脚本和触发器,请打开 Google 表单并输入名称并上传文件并提交。这样,通过触发可安装的 OnSubmit 触发器,脚本是 运行。并且,上传的文件被移动到创建的文件夹,文件夹名称为“Name”。
在此示例脚本中,当存在相同文件夹名称时,文件将被放入现有文件夹。
注:
- 这是一个简单的示例脚本。所以请根据自己的实际情况修改。