Форма Google: Как переместить все файлы, загруженные в указанную папку c при отправке? - PullRequest
0 голосов
/ 10 января 2020

Во-первых, я прошу прощения за отсутствие здесь знаний - без сомнения, это довольно просто для тех, кто понимает это -

Я пытаюсь загрузить все файлы для каждой отправленной формы, помещенные в одну папку.

У меня есть этот код, который я нашел здесь: Форма Google: Как сохранить загрузку нескольких файлов в определенной папке c?

function onFormSubmit(e) {
  var form = FormApp.getActiveForm();
  var formResponses = form.getResponses();
  var formResponse = formResponses[formResponses.length-1];
  var itemResponses = formResponse.getItemResponses();

  // I modified below script.
  Utilities.sleep(3000);

  var folderId = "###";  // Please set folder ID of the destination folder.

  var destfolder = DriveApp.getFolderById(folderId);
  for (var i = 0; i < itemResponses.length; i++) {
    if (itemResponses[i].getItem().getType() == "FILE_UPLOAD") {
      var ids = itemResponses[i].getResponse();
      for (var j = 0; j < ids.length; j++) {
        var file = DriveApp.getFileById(ids[j]);
        destfolder.addFile(file);
        file.getParents().next().removeFile(file);
      }
    }
  }
}

При отправке, он выдает эту ошибку: «Элемент с указанным идентификатором не найден, или у вас нет разрешения на доступ к нему. (строка 12, файл« Код »)»

Строка 12:

  var destfolder = DriveApp.getFolderById(folderId);

Два вопроса: - Что здесь не так и как я могу это исправить?

  • Что я должен поместить в идентификатор папки назначения? Я хотел бы сделать то же самое, что я делаю с Form Publisher, который обрабатывает вывод PDF следующим образом, основываясь на деталях в отправленной форме: <> - <> - <>

1 Ответ

0 голосов
/ 10 января 2020
function onFormSubmit(e) {
  Logger.log(JSON.stringify(e));
  var ft=e.values.slice(1);//This is where are the file url were located
  var fA=ft[0].split(',');
  for(var i=0;i<fA.length;i++) {
    var file=DriveApp.getFileById(fA[i].slice(fA[i].indexOf("=")+1));
    Drive.Files.update({"parents": [{"id": "FolderId"}]}, file.getId());
    Utilities.sleep(2000);
  } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...