谷歌表格中的FILE_UPLOAD项目类型

问题描述 投票:3回答:2

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

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

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

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

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

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

google-apps-script
2个回答
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);
      }
    }
  }
}

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

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


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
© www.soinside.com 2019 - 2024. All rights reserved.