Заполнение файлов внутри готовой папки на диске

#google-apps-script #google-drive-api

#google-apps-script #google-drive-api

Вопрос:

Я хотел бы, чтобы этот код заполнял файлы, загруженные пользователем в заданную папку на Google Диске, а не создавал каждый раз новую папку. Как мне это сделать?

Смотрите существующий код ниже:

 function doGet(e) {
  return HtmlService.createHtmlOutputFromFile('form.html');
}

function uploadFiles(form) {
  try {
    var dropbox = form.myName   ", "   form.myBusiness;
    var folder, folders = DriveApp.getFoldersByName(dropbox);
    if (folders.hasNext()) {
      folder = folders.next();
    } else {
      folder = DriveApp.createFolder(dropbox);
    }

    var blob = form.myFile;    
    var file = folder.createFile(blob);    
    file.setDescription("Uploaded by "   form.myName   ", "   form.myBusiness   ", "   form.details);

    return "File uploaded successfully "   file.getUrl();
  } catch (error) {
    return error.toString();
  }
}
  

Комментарии:

1. Имеющийся у вас код должен делать именно это. Вы проверили результаты DriveApp.getFoldersByName(<your variable>) ? От имени кого выполняется этот код?

2. Что это делает на данный момент, так это создает новую папку непосредственно на главном рабочем столе Goolge drive, если хотите. Что я хотел бы сделать, так это заполнить файлы и все остальное, загруженное в уже существующую папку, которой я мог бы поделиться с другими пользователями, чтобы они тоже могли видеть файлы внутри. Если бы вы загрузили две разные вещи с одинаковым именем и организацией, это сработало бы идеально, однако это доступно нескольким людям с разными именами и т.д. Это означает, что на диске будет создана новая папка, отдельная от другой, и это здорово, мне просто нужно, чтобы она была внутри самой папки.

3. Кроме того, это выполняется как «я (мой адрес электронной почты)». И люди, которые имеют доступ к приложению, «любые, даже анонимные».

4. Из вашего сообщения не было ясно, что вы хотите, чтобы все ответы на форму находились в одной папке, независимо от данных респондентов. В будущем попробуйте включить примеры выходных данных, например «все эти файлы должны быть загружены в папку «Моя форма A /<папка конкретного респондента>» вместо «Мой диск /<папка конкретного респондента>»»

Ответ №1:

Решил это сам. Измените параметр dropbox на имя папки, в которую должны быть загружены файлы. Имя этого файла должно быть точно таким же в GDrive и в коде. Пример:

 var dropbox = "Example file name";
var folder, folders = DriveApp.getFoldersByName(dropbox);