【问题标题】:Google Forms Upload File - using/modifying the responseGoogle 表单上传文件 - 使用/修改响应
【发布时间】:2018-10-16 11:26:09
【问题描述】:

在更大的过程中(此处不相关)我想在表单中使用原生 Google 表单“文件上传”问题。

我一直在尝试了解如何使用响应来:

  1. 重命名上传的文件
  2. 将文件移动/复制/保存到特定位置 (这最终将由另一个响应项确定,但目前,我们将其称为“myDesitinationFolder”

我当然可以在回复、Google 界面或电子表格中查看文件(以及从电子表格中查看文件的 URL)

但我想在文件“保存到云端硬盘”之前或无论如何在 onFormSubmit() 期间进行处理

我发现的只是一个值 [randomalphanumeric],我无法找到解释这个 [element] 是什么的文档。 (如果它是一个对象 - 但正方形 [] 似乎表明情况并非如此) (澄清后更新)

用于获取值的示例代码来自 Stack。

    .
fonction onFormSubmit(e){ 
var form = FormApp.getActiveForm()
var formResponses = form.getResponses();
for (var i = 0; i < formResponses.length; i++) {
var formResponse = formResponses[i];
var itemResponses = formResponse.getItemResponses();
for (var j = 0; j < itemResponses.length; j++) {
  var itemResponse = itemResponses[j];
  Logger.log('Response #%s to the question "%s" was "%s"',
             (i + 1).toString(),
             itemResponse.getItem().getTitle(),
             itemResponse.getResponse());

  console.log('Response #%s to the question "%s" was "%s"',
              (i + 1).toString(),
              itemResponse.getItem().getTitle(),
              itemResponse.getResponse());

   }
 }

}

输出: 对问题“fileUpload”的响应 #19 是“[1OQeNOTREALCODE5SoAaPiw4s2M-cfRDJ]”

(NOTREALCODE 由我添加到匿名响应)

我的问题:那是一个文件对象吗?我可以访问“保存”过程以事先更改目的地和名称吗? 或者我最好的选择是在更新的工作表上进行后提交过程(我有文件 URL 等)(我真的不想那样做,我更愿意将它全部包含在表单中(我不'否则不需要工作表)

谢谢

【问题讨论】:

  • FormSubmit 在表单提交后触发。 1OQeNOTREALCODE5SoAaPiw4s2M-cfRDJ 可能是上传文件文档的fileID。您可以使用它来访问/移动/修改使用DriveApp上传的文件
  • 谢谢。是的,它是文件ID;我已经能够证实这一点。所以文件已经写入磁盘。我必须搬家并重命名。

标签: google-apps-script google-apps google-forms


【解决方案1】:

提交文件上传表单时,Google 表单响应会将文件 ID 存储在 Google 云端硬盘中。您可以使用 DriveApp 服务通过 ID 访问上传的文件并对其进行重命名、移动或复制到另一个文件夹。

function renameFile(id) {
  var file = DriveApp.getFileById(id);
  file.setName("Some name here");
}

【讨论】:

  • 谢谢。是的,这应该可以满足我的需要!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-21
  • 1970-01-01
  • 2019-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-05
相关资源
最近更新 更多