#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);