将 google 个表单文件上传到两个不同的 google 驱动器文件夹

Upload google form files to two different google drive folders

我有一个包含两个文件上传部分的 google 表单。我希望能够将这些文件上传到两个不同的文件夹。第一个文件上传部分中的文件应放在文件夹一中,第二个文件上传部分中的文件应放在文件夹二中。我还想根据发件人的姓名自动命名文件夹。文件夹应如下所示:sendername_1、sendername_2 等,如果发件人具有相同的名称。我将如何做到这一点?我找到了下面的脚本,但它似乎只适用于文件夹 1。文件夹 2 包含来自第二个文件上传部分的文件,但它不会自动为它们创建文件夹。

    function onFormSubmit(e) {
  

    const folderId = "1y40PNXYXSm7Ue_b6nbVnauz7dzKiKj4u";  // Please set top folder ID of the destination folders.

  const form = FormApp.getActiveForm();
  const formResponses = form.getResponses();
  const itemResponses = formResponses[formResponses.length-1].getItemResponses();

  Utilities.sleep(3000); // This line might not be required.

  // Prepare the folder.
  const destFolder = DriveApp.getFolderById(folderId);
  const folderName = itemResponses[0].getResponse();
  const subFolder = destFolder.getFoldersByName(folderName);
  const folder = subFolder.hasNext() ? subFolder : destFolder.createFolder(folderName);

  // Move files to the folder.
itemResponses[2].getResponse().forEach(id => DriveApp.getFileById(id).moveTo(folder));

}

这是我将如何处理它的示例:

function getIdFromUrl(url) 
{ 
  return url.match(/[-\w]{25,}/); 
}

function automateFile (e) {

var name = e.values[2]
var file1 = e.values[3]; 
var file2 = e.values[4];
var drive = DriveApp;
var parentFolder = drive.getFolderById("1vJcsklbZ_Lk0b3CH0JxUHN8UzNI0eKXV"); //Set Parent Folder ID
var createFolder1 = drive.createFolder(name + '_1').moveTo(parentFolder);
var createFolder2 = drive.createFolder(name + '_2').moveTo(parentFolder);

var getfileId1 = getIdFromUrl(file1); //Gets the file ID 1
  drive.getFileById(getfileId1).moveTo(createFolder1); // Moves the file to Folder1 

var getfileId2 = getIdFromUrl(file2); //Gets the file ID 2
  drive.getFileById(getfileId2).moveTo(createFolder2); // Moves the file to Folder2 

}

备注: 此脚本是在 Google Sheets Apps 脚本上完成的,它是为 Google 表单上的表单响应创建的 sheet。

确保你像这样创建一个 trigger

我从这个 reference 使用了这个函数 getIdFromUrl(url) 因为 file1file2 只有 returns 整个 URL,而不是文件 ID,截至目前,还没有 getFileById 方法可以从您的表单中移动上传的文件。

我的 Google 表格截图:

内部驱动器:

文件移动到创建的文件夹中: