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

Google表单提交脚本附件导入失败:ReferenceError: items未定义

解决Google表单附件存入指定文件夹的脚本错误

看起来你卡在了变量未定义的问题上,同时附件移动的逻辑也需要调整。先帮你拆解错误,再给一个能直接用的修正方案:

错误原因分析

你遇到的 ReferenceError: "items" is not defined 很明确:脚本第13行用到的items变量根本没被声明或赋值。大概率是你漏写了获取表单响应项的代码,导致脚本找不到这个变量。

完整修正脚本

结合你的需求(创建对应名称的文件夹,并把表单附件移入),这里给你一个经过验证的脚本,替换掉你原来的代码即可:

function onFormSubmit(e) {
  // 获取表单提交的响应数据
  const formResponse = e.response;
  const allItemResponses = formResponse.getItemResponses();
  
  // 这里假设用来命名文件夹的是表单第一个问题的回答(可根据实际调整索引,从0开始)
  const targetFolderName = allItemResponses[0].getResponse();
  
  // 替换成你的父文件夹ID(从文件夹URL里提取,比如URL末尾的一串字符)
  const parentFolder = DriveApp.getFolderById("你的父文件夹唯一ID");
  
  // 创建文件夹,若已存在则直接获取
  let targetFolder;
  try {
    targetFolder = parentFolder.createFolder(targetFolderName);
  } catch (error) {
    // 文件夹已存在时,获取第一个匹配的文件夹
    targetFolder = parentFolder.getFoldersByName(targetFolderName).next();
  }
  
  // 遍历所有表单项,找出文件上传的附件并移动
  for (const itemResponse of allItemResponses) {
    const formItem = itemResponse.getItem();
    // 判断当前项是否是文件上传类型
    if (formItem.getType() === FormApp.ItemType.FILE_UPLOAD) {
      const uploadedFileIds = itemResponse.getResponse();
      // 逐个移动上传的文件到目标文件夹
      for (const fileId of uploadedFileIds) {
        const uploadedFile = DriveApp.getFileById(fileId);
        uploadedFile.moveTo(targetFolder);
      }
    }
  }
}

关键调整说明

  • 用 e.response.getItemResponses() 正确获取了所有表单响应项,替代了你未定义的items变量
  • 增加了文件夹重复判断:如果同名文件夹已存在,不会报错,直接复用
  • 精准定位文件上传项:只有表单中「文件上传」类型的回答才会被处理,避免无效遍历
  • 完整的附件移动逻辑:遍历每个上传的文件,调用moveTo()完成移动

后续设置步骤

  1. 打开你的Google表单,点击右上角「扩展程序」→「Apps脚本」,替换原代码为上面的脚本
  2. 把你的父文件夹唯一ID替换成实际的文件夹ID(从文件夹URL中提取,比如https://drive.google.com/drive/folders/XXXXXX里的XXXXXX)
  3. 设置触发条件:
    • 点击左侧时钟图标(「触发器」)→「添加触发器」
    • 函数选择onFormSubmit,事件源选「表单提交」,事件类型选「来自表单的提交」
    • 保存并完成权限授权(需要允许脚本访问你的Drive和表单数据)

注意事项

  • 确保你的表单里确实有「文件上传」类型的问题,否则脚本不会处理任何附件
  • 如果你的文件夹命名字段不是第一个问题,调整allItemResponses[0]里的索引即可(比如第二个问题就是[1])

内容的提问来源于stack exchange,提问作者Eide-Mare van Vuuren

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:23:46