- Когда файлы загружаются с помощью формы Google, вы хотите переместить загруженные файлы в определенную папку.
- Вы уже установили триггер события OnSubmit для
onFormSubmit()
.
- У вас уже есть идентификатор папки назначения.
Если мое понимание верно, как насчет этой модификации? Пожалуйста, подумайте об этом как об одном из нескольких ответов.
Очки модификации:
Модифицированный скрипт:
Перед использованием этого сценария, пожалуйста, установите ID папки назначения на var folderId = "###"
.
При изменении сценария, пожалуйста, удалите триггер события OnSubmit один раз и установите триггер снова. В это время, если отображается экран авторизации. Пожалуйста, авторизуйтесь. При этом скрипт работает. Пожалуйста, будьте осторожны с этим.
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);
}
}
}
}
Примечание:
- В моем тестовом случае, когда
Utilities.sleep(3000)
не используется, был случай, когда произошла ошибка, потому что файл пытался переместить до завершения загрузки файла. Так я и положил. Если в вашей среде нет ошибок без нее, пожалуйста, удалите ее.
Ссылки:
Если я неправильно понял ваш вопрос, и это был не тот результат, которого вы хотите, я прошу прощения.