Google最近在其表单中添加了文件上传功能。
但是,我无法找到有关如何在谷歌脚本中使用此文档的任何文档。如果我在google上查看商品类型API,则不会列出
https://developers.google.com/apps-script/reference/forms/item-type
但是,如果我检查表单中的类型,我会得到一种“FILE_UPLOAD”responseItem.getItem().getType() //returns FILE_UPLOAD
如果我查看对象,它是一个带字符串的数组。
我只想弄清楚如何获取文件名并重命名。
所以在考虑了这一点后,我意识到FILE_UPLOAD类型返回的字符串可能是google驱动器文件ID。事实证明这是正确的。因此,您可以使用DriveApp类来获取文件并重命名。
我是这样做的:
for (var f = 0; f < responseItems.length; f++) {
if (responseItems[f].getItem().getType() === "FILE_UPLOAD") {
files = responseItems[f].getResponse();
if (files.length > 0) {
for (var n in files) {
var dFile = DriveApp.getFileById(files[n]);
dFile.setName("new name_" + n);
}
}
}
}
运行此操作时,系统会要求您授予脚本访问驱动器中文件的权限。
希望这有助于其他人试图解决这个问题。
/* Explaining a litle more
*
* although in documentation there's no FormApp.ItemType.FILE_UPLOAD
*
* using debugger or Logger.log you can go through items in form
* and get which text and ord number are used.
* for example :
*/
var items = FormApp.getActiveForm().getItems();
items.forEach(function(item){
var name = item.getType().toString();
var number = item.getType().ordinal();
var title = item.getTitle();
Logger.log("Item ["+title+"] Type="+name+" Ord Num="+number);
});
// Item for File Upload has:
// Type = 'FILE_UPLOAD' and
// Ord Num = 16,
// exactly one more than VIDEO which are 15. * since enum begin with 0