Хобрук: Ваш путь к мастерству в программировании

Google Form Загрузить файлы на конкретный диск с определенным именем папки на основе 4-го ввода пользователя

У меня есть Google Forms, где пользователи могут вводить текст, загружать документы и т. Д.

Мне нужен 4-й элемент в форме в качестве имени подпапки в верхней папке. Я зарегистрировал нужный мне вывод, который можно увидеть внизу, но я не могу назвать созданную подпапку с вводом. Более того, я получаю следующее сообщение об ошибке, когда пытаюсь его решение.

Журнал - ошибка

Как видно из ошибки, файлы не перемещаются во вложенную папку. Пользователь может загрузить несколько файлов, и я хочу, чтобы все файлы были перемещены.

Здесь вы можете увидеть код, который у меня есть. Как вы понимаете, я новичок в мире скриптов Google Apps, поэтому надеюсь, что кто-нибудь сможет помочь новичку :-)

function onFormSubmit(e) {
  const folderId = "1lbd21iTZF2oT7vCGEZ";  // Top folder ID
  const form = FormApp.getActiveForm();
  const formResponses = form.getResponses();
  const itemResponses = formResponses[formResponses.length-1].getItemResponses();
  console.log("Name: " + itemResponses[3].getResponse())

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

  // Attempts to move all files to the folder.
  itemResponses[1].getResponse().forEach(id => DriveApp.getFileById(id).moveTo(folder));
}


  • Почему бы вам не console.log каждую переменную увидеть, получите ли вы ожидаемое значение? Что возвращает console.log(ItemResponses[1]) или console.log(ItemResponses[1].getResponse())? Это сделает ваш вопрос более ясным, и люди смогут ответить, не предполагая, что может пойти не так. Предположения - это пустая трата вашего времени и времени отвечающего. 12.03.2021
  • Возможно, вы используете неправильный 0nFormSubmit, один для формы и один для электронной таблицы. Проверьте объект события в разделе руководств документации внизу 12.03.2021
  • Спасибо за советы @Mario. Мне удалось найти правильный ввод, и я попытался отредактировать свой пост, чтобы сделать его более понятным! Опять же, я очень признателен за помощь! :-) 12.03.2021
  • Спасибо @Cooper! Я использую коррент OnFormSubmit - из форм :-) 12.03.2021

Ответы:


1

itemResponses[1].getResponse(), вероятно, не является массивом

На странице документации getResponse ()

Возвращение

Объект - String, String[] или String[][] ответов на вопрос

Похоже, вы получаете простой String ответ, а поскольку это не массив, у него нет forEach метода.

Как предложил Мариос, попробуйте что-то вроде этого для дальнейшей отладки:

// Attempts to move all files to the folder.
// DEBUG
// itemResponses[1].getResponse().forEach(id => DriveApp.getFileById(id).moveTo(folder));
Logger.log(itemResponses)
Logger.log(itemResponses[1])
// This will be something that it not an array, probably a string.
Logger.log(itemResponses[1].getResponse())
15.03.2021
Новые материалы

Учебные заметки JavaScript Object Oriented Labs
Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

Разбор строк запроса в vue.js
Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
«Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

Как настроить Selenium в проекте Angular
Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..