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

如何通过Google Apps Script为Google Forms添加图片上传功能

实现Google Forms问题的图片上传功能(Google Apps Script)

核心逻辑说明

Google Forms中的图片上传属于独立的文件上传问题类型,无法与文本、单选等问题合并。你需要在脚本中识别需添加图片上传的问题,为其单独创建文件上传项,或在原问题后附加图片上传要求。

具体实现步骤

  1. 标记需图片上传的问题
    在存储问题的Google Sheets中新增一列(比如第3列),用TRUE/FALSE标记哪些问题需要附加图片上传功能;也可以通过问题文本中的关键词(如包含「上传图片」)自动识别。

  2. 脚本中添加文件上传问题逻辑
    结合你现有的导入流程,在读取Sheets数据时,判断当前问题是否需要图片上传,若需要则创建对应的文件上传项:

function importQuestionsWithImageUpload() {
  // 1. 关联你的Sheets和Form
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("问题列表");
  const form = FormApp.openById("你的表单ID"); // 或用FormApp.create("新表单名称")创建新表单
  const data = sheet.getDataRange().getValues();

  // 2. 遍历问题数据(跳过表头,从第2行开始)
  for (let i = 1; i < data.length; i++) {
    const questionText = data[i][0]; // 第1列:问题文本
    const questionType = data[i][1]; // 第2列:问题类型(文本/单选等)
    const needImageUpload = data[i][2]; // 第3列:是否需要图片上传(TRUE/FALSE)

    // 3. 创建原问题(沿用你已有的逻辑)
    let item;
    switch (questionType) {
      case "文本":
        item = form.addTextItem().setTitle(questionText);
        break;
      case "单选":
        const options = data[i][3].split(","); // 第4列:单选选项(逗号分隔)
        item = form.addMultipleChoiceItem()
          .setTitle(questionText)
          .setChoices(options.map(opt => FormApp.createChoice(opt.trim())));
        break;
      // 补充其他问题类型的创建逻辑
    }

    // 4. 若需要图片上传,添加文件上传问题
    if (needImageUpload) {
      const uploadItem = form.addFileUploadItem()
        .setTitle(`请上传与「${questionText}」相关的图片`)
        .setAllowedFileTypes([FormApp.FileUploadType.IMAGE]) // 仅允许上传图片
        .setMaximumFileSize(5); // 限制图片大小为5MB(可选)

      // 可选:设置自定义存储文件夹(默认存在「表单上传」文件夹)
      const targetFolder = DriveApp.getFolderById("你的目标文件夹ID");
      uploadItem.setDestination(FormApp.FileUploadDestination.DRIVE_FOLDER, targetFolder);
    }
  }
}

关键注意点

  • 权限要求:运行脚本时需授权Google Drive和Forms的访问权限,按提示完成授权即可。
  • 问题独立性:Forms不支持在单个问题中同时包含文本输入和图片上传,必须拆分为两个独立问题。
  • 文件存储:上传的图片默认保存到Google Drive的「表单上传」文件夹,可通过setDestination指定自定义文件夹。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 00:01:04