我正在使用Google Forms收集团队成员的图像,并且我想确保上传到Google Forms并保存在Google Drive中的每个文件都具有相同的命名约定。
团队成员被要求将其图像上传到五个 文件上传 问题。文件将以随机文件名后跟- firstName lastName
的形式放置在Google云端硬盘文件夹中。在 onFormSubmit 触发器上,我想将用户提供的文件的名称更改为fileUploadQuestionName - firstName lastName
。
我对Google Apps脚本还很陌生,我也不知道如何去做。任何帮助将不胜感激!
答案 0 :(得分:1)
form.getResponses()[LAST FORM SUBMISSION]
getItemResponses()[QUESTION NUMBER].getResponse()
检索上载文件的ID function myFunction() {
var form=FormApp.getActiveForm();
// returns the total number of form submissions
var length=form.getResponses().length;
//replace QUESTION NUMBER through the index of the question prompting the file upload - keep in mind that the first question has the index 0
var id=form.getResponses()[length-1].getItemResponses()[QUESTION NUMBER].getResponse();
//getResponses()[length-1] retrieves the last form response, accounting for the fact that the first index is zero and hte last length-1
//gets the name of the question
var fileUploadQuestionName=form.getResponses()[length-1].getItemResponses()[QUESTION NUMBER].getItem().getTitle();
//accesses the uploaded file
var file=DriveApp.getFileById(id);
name = file.getName();
//changes the file name
var name = fileUploadQuestionName+' - '+name.split(' - ')[1]
file.setName(name);
}
PS:如果要更改后验名称,请更改所有已提交文件的名称,而不仅仅是最后一个文件-您需要遍历所有表单响应:
for(var i=0;i<length;i++){
var id=form.getResponses()[i].getItemResponses()[QUESTION NUMBER].getResponse();
...
...
}
答案 1 :(得分:0)
最简单的方法可能是通过基于时间的触发器遍历google驱动器中的指定文件夹,并检查它们是否满足指定条件,或者在重命名后将其移动到其他文件夹。
function checkFile()
{
var files = DriveApp.getFolderById('ID of Folder').getFiles();
// you can find this by going to form responses and clicking the link to an attached file and copying the id from the URL
// https://drive.google.com/drive/folders/xxxxxxxxxxxxxxxxxxxxxxxxxxx
var fileUploadQuestionName = 'Test';
while(files.hasNext())
{
var file = files.next();
var name = file.getName();
if(name.indexOf(fileUploadQuestionName) == -1)
{
name = fileUploadQuestionName+' - '+name.split('-')[1]
file.setName(name);
}
}
}
从那里开始,您需要添加一个基于时间的触发器,以便每小时,每天或每分钟运行一次,具体取决于始终查找正确名称的文件的重要性。
我在Google的formApp文档的响应项中找不到任何有关访问文件的文档。