如何将Google表单上传文件的目标文件夹设为Google Drive已有文件夹
将Google表单上传文件存入指定已有Drive文件夹的实现方法
之前你看到的方案会为每次上传新建文件夹,本质是代码中包含了主动创建文件夹的逻辑,以下方案完全跳过新建文件夹步骤,直接把上传文件移动到你提前建好的指定Drive文件夹内:
步骤1:获取目标文件夹ID
- 打开你已经创建好的、用于存储上传文件的Google Drive文件夹,复制浏览器地址栏中
folders/后面的一串字符,就是该文件夹的唯一ID,保存好备用。 - 不需要额外查找表单题目ID,脚本会自动识别表单内所有文件上传类型的题目,同时兼容单文件、多文件上传场景。
步骤2:粘贴功能脚本
打开你的Google表单编辑页,点击右上角三个点的更多菜单,选择「脚本编辑器」,删除编辑器里默认的空函数,粘贴以下代码:
// 把单引号里的内容替换成你刚才复制的目标文件夹ID const TARGET_FOLDER_ID = '替换为你的目标Drive文件夹ID'; function onFormSubmit(e) { if (!e) throw new Error('请通过表单提交触发器运行此脚本,不要手动执行'); const targetFolder = DriveApp.getFolderById(TARGET_FOLDER_ID); // 遍历表单所有提交项 e.response.getItemResponses().forEach(itemResp => { // 筛选出文件上传类型的题目 if (itemResp.getItem().getType() === FormApp.ItemType.FILE_UPLOAD) { // 获取该题上传的所有文件ID(兼容多文件上传) const uploadFileIds = itemResp.getResponse(); uploadFileIds.forEach(fileId => { // 将文件直接移动到目标文件夹,不生成副本、不新建子文件夹 DriveApp.getFileById(fileId).moveTo(targetFolder); }); } }); }
粘贴后点击编辑器上方的保存按钮,给脚本设置任意名称即可。
步骤3:绑定表单提交触发器
脚本本身不会自动运行,需要绑定表单提交触发事件:
- 在脚本编辑器左侧边栏找到时钟样式的「触发器」选项,点击进入触发器管理页
- 点击右下角「添加触发器」,按以下参数配置:
- 选择要运行的函数:
onFormSubmit - 选择运行时版本:
Head - 选择事件来源:
来自表单 - 选择事件类型:
提交表单时
- 选择要运行的函数:
- 点击保存,按照弹窗提示完成账号授权:如果弹出「Google未验证此应用」的提示,点击左下角「高级」,再选择「转到(你的脚本名称)」完成授权即可,脚本为你本人所有,不存在安全风险。
额外说明:这个方法用Drive原生的
moveTo接口实现文件位置变更,不会复制文件产生多余副本,移动完成后表单默认生成的存储文件夹里不会残留冗余文件,不需要手动清理,也不会修改原文件的名称、上传者信息、分享权限。如果需要自定义文件重命名、打标签等逻辑,直接在moveTo代码前加对应处理逻辑即可。
内容的提问来源于stack exchange,提问作者CapBarboza
相关产品推荐
相关产品推荐

