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

如何让Google表单多文件上传至Name字段命名的统一文件夹?

解决方案:按Name字段统一存放Google表单上传文件

你可以通过Google Apps Script实现这个需求,具体步骤如下:

1. 打开表单脚本编辑器

打开你的Google表单,点击右上角「扩展程序」→「Apps Script」,进入脚本编辑界面。

2. 编写处理脚本

替换默认的myFunction,粘贴以下代码:

function onFormSubmit(e) {
  // 提取表单提交的Name和所有上传文件ID
  const responses = e.response.getItemResponses();
  let userName = '';
  const uploadedFileIds = [];

  responses.forEach(itemResp => {
    const itemTitle = itemResp.getItem().getTitle();
    if (itemTitle === 'Name') {
      userName = itemResp.getResponse().trim();
    } else if (itemTitle.startsWith('File upload')) {
      const files = itemResp.getResponse();
      if (files?.length) uploadedFileIds.push(...files);
    }
  });

  // 若无Name或无上传文件,直接返回
  if (!userName || !uploadedFileIds.length) return;

  // 获取表单默认的文件存储根文件夹
  const formRootFolder = DriveApp.getFolderById(FormApp.getActiveForm().getDestinationId());

  // 创建或获取对应Name的目标文件夹
  let targetFolder;
  const existingFolders = formRootFolder.getFoldersByName(userName);
  targetFolder = existingFolders.hasNext() ? existingFolders.next() : formRootFolder.createFolder(userName);

  // 移动文件到目标文件夹并清理原字段子文件夹
  uploadedFileIds.forEach(fileId => {
    const file = DriveApp.getFileById(fileId);
    const originalFolder = file.getParents().next();
    
    // 移动文件
    targetFolder.addFile(file);
    originalFolder.removeFile(file);
    
    // 删除空的原文件夹
    if (!originalFolder.getFiles().hasNext() && !originalFolder.getFolders().hasNext()) {
      originalFolder.setTrashed(true);
    }
  });
}

3. 设置表单提交触发器

  • 在脚本编辑器左侧点击「触发器」图标(闹钟样式)。
  • 点击「添加触发器」,配置参数:
    • 选择函数:onFormSubmit
    • 事件源:「表单」
    • 事件类型:「表单提交」
  • 保存并完成权限授权(首次授权需确认允许脚本访问你的Google Drive和表单)

注意事项

  • 确保表单中文件上传字段的标题以「File upload」开头(和代码中的匹配逻辑一致),如果你的字段标题有修改,需要同步调整代码中的判断条件。
  • 若已存在同名文件夹,新上传的文件会直接存入该文件夹,不会重复创建。
  • 原字段的子文件夹在文件移走后会被自动删除(仅当文件夹为空时)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 16:54:17