谷歌表格中的FILE_UPLOAD项目类型

时间:2017-08-26 01:48:37

标签: google-apps-script

Google最近在其表单中添加了文件上传功能。

但是,我无法在google脚本中找到有关如何使用此文档的任何文档。如果我在google上查看商品类型API,则不会列出

https://developers.google.com/apps-script/reference/forms/item-type

但是,如果我检查表单中的类型,我会得到一种" FILE_UPLOAD" responseItem.getItem().getType() //returns FILE_UPLOAD

如果我查看对象,它是一个带字符串的数组。

我只想弄清楚如何获取文件名并重命名。

2 个答案:

答案 0 :(得分:4)

所以在考虑了这一点后,我意识到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);
      }
    }
  }
}

运行此操作时,系统会要求您授予脚本访问驱动器中文件的权限。

希望这有助于其他人试图解决这个问题。

答案 1 :(得分:0)

/* 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