You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Google Script根据下拉选项重定向表单上传文件至对应文件夹

实现Google表单上传文件自动分类到对应文件夹(基于下拉选择)

当然可以!这是Google Apps Script最擅长的自动化场景之一,我之前帮好几个用户实现过类似需求,下面一步步教你怎么做:

第一步:准备表单与文件夹结构

  • 确保你的Google Form里有两个核心组件:一个下拉选择题(选项比如Meat、Fish,注意名称要精准),一个文件上传组件(允许用户上传文件)
  • 在Google Drive中创建好对应目标文件夹,命名要和下拉选项完全一致(包括大小写、空格,比如下拉选Meat,文件夹就叫Meat)

第二步:编写表单触发脚本

  1. 打开你的Google Form,点击右上角的「⋮」菜单,选择「脚本编辑器」,进入Google Apps Script编辑界面
  2. 删除默认的myFunction()代码,替换成下面的脚本(记得根据你的表单组件标题修改对应内容):
function onFormSubmit(e) {
  // 获取表单提交的响应数据
  const response = e.response;
  const itemResponses = response.getItemResponses();
  
  // 初始化分类和文件变量
  let selectedCategory = "";
  let uploadedFile = null;
  
  // 遍历所有表单响应,提取我们需要的信息
  itemResponses.forEach(itemResp => {
    const itemTitle = itemResp.getItem().getTitle();
    
    // 替换成你表单中下拉选择题的标题,比如"食材类型"
    if (itemTitle === "食材类型") {
      selectedCategory = itemResp.getResponse();
    }
    
    // 替换成你表单中文件上传组件的标题,比如"上传食材凭证"
    if (itemTitle === "上传食材凭证") {
      const fileIds = itemResp.getResponse();
      // 取第一个上传的文件(如需处理多个,可循环遍历fileIds)
      if (fileIds.length > 0) {
        uploadedFile = DriveApp.getFileById(fileIds[0]);
      }
    }
  });
  
  // 当分类和文件都存在时,执行移动/复制操作
  if (selectedCategory && uploadedFile) {
    try {
      // 根据分类名称查找目标文件夹
      const targetFolder = DriveApp.getFoldersByName(selectedCategory).next();
      
      // 方案1:复制文件到目标文件夹(原文件保留在表单默认文件夹)
      uploadedFile.makeCopy(uploadedFile.getName(), targetFolder);
      
      // 方案2:直接移动文件到目标文件夹(原文件会从默认文件夹移除)
      // uploadedFile.moveTo(targetFolder);
      
      // 可选:删除原文件(如果用了复制,想清理默认文件夹的话)
      // uploadedFile.setTrashed(true);
    } catch (err) {
      // 捕获找不到文件夹的异常,记录日志方便排查
      console.log(`错误:未找到名为「${selectedCategory}」的文件夹,详情:${err}`);
    }
  }
}

第三步:设置表单提交触发器

  1. 在脚本编辑器左侧,点击「触发器」图标(闹钟样式)
  2. 点击「添加触发器」,配置以下参数:
    • 选择要运行的函数:onFormSubmit
    • 选择部署来源:从表单
    • 选择事件类型:表单提交
  3. 点击「保存」,按照提示完成脚本权限授权(浏览器提示“未验证应用”是正常的,点击「高级」→「转到你的脚本名称(不安全)」即可完成授权)

关键注意事项

  • 下拉选项名称必须和Drive文件夹名称完全匹配,否则脚本会找不到目标文件夹
  • 如果需要支持多文件上传,修改脚本中处理fileIds的部分,循环遍历每个文件ID即可
  • 脚本中的makeCopy和moveTo二选一:复制会保留原文件,移动则是直接转移原文件
  • 授权时的权限提示是Google的安全机制,因为这是你自己编写的脚本,放心授权即可

内容的提问来源于stack exchange,提问作者adka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:25:12