【发布时间】:2022-02-09 21:21:48
【问题描述】:
当受访者通过 Google 表单上传文件时,该文件会存储在 Google 云端硬盘的固定文件夹中。所有文件都上传在同一个文件夹中,因此查看 Google Drive 中的文件,很难确定哪个受访者上传了哪组文件。
问题:我想增强脚本以根据用户在表单响应中的回答创建自定义文件夹名称。
谢谢。
const PARENT_FOLDER_ID = "<<Folder ID here>>";
const initialize = () => {
const form = FormApp.getActiveForm();
ScriptApp.newTrigger("onFormSubmit").forForm(form).onFormSubmit().create();
};
const onFormSubmit = ({ response } = {}) => {
try {
// Get a list of all files uploaded with the response
const files = response
.getItemResponses()
// We are only interested in File Upload type of questions
.filter(
(itemResponse) =>
itemResponse.getItem().getType().toString() === "FILE_UPLOAD"
)
.map((itemResponse) => itemResponse.getResponse())
// The response includes the file ids in an array that we can flatten
.reduce((a, b) => [...a, ...b], []);
if (files.length > 0) {
// Each form response has a unique Id
const subfolderName = response.getId();
const parentFolder = DriveApp.getFolderById(PARENT_FOLDER_ID);
const subfolder = parentFolder.createFolder(subfolderName);
files.forEach((fileId) => {
// Move each file into the custom folder
DriveApp.getFileById(fileId).moveTo(subfolder);
});
}
} catch (f) {
Logger.log(f);
}
};
【问题讨论】:
标签: google-apps-script google-sheets