【发布时间】:2020-04-09 14:46:19
【问题描述】:
其他用户发布了类似的问题here 和here。我试图复制答案,但收到未定义的答案。我的用户最多可以上传 5 个文件,我想在电子表格的(最多)5 列中附加文件名作为响应。
我认为一旦我使用以下示例获得 URL,我就能够获取文件名。
function driveFile(){
//e.values[1] is apparently the file URL
var url = "https://drive.google.com/open?id=1bVbNAnES33oY4gx8npdp51ZSMekQalk"
var id = url.split("=")[1];
var file = DriveApp.getFileById(id);
var fileName = file.getName();
}
我按照另一个问题中的建议尝试了这个,但它返回未定义。 我也尝试使用 0,因为将不同文件的 URL 设置为 0 到 4 是有意义的。
var file = e.values[1]
我也尝试了其他问题的示例,但无济于事。我也不确定它是否会返回串联或数组中的 URL。
var fileBlob = e.parameter.thefile;
我将不胜感激有关此主题的任何指导。获取通过 Google 表单提交的(最多)5 个文件的 URL → 文件名。
【问题讨论】:
-
您何时以及如何运行
driveFile()?要获取表单提交的上下文,您需要在触发器上运行该函数,并且您的函数也没有 event 参数。我在我的云端硬盘中使用有效的文件 URL 测试了您的第一个函数,它按预期完美运行。 -
亲爱的 Rafa,我没有运行 driveFile()。我正在尝试首先检索文件 URL,对于我的问题令人困惑的布局感到抱歉。
-
您是如何获取这些 URL 的?我运行
var url = 'https://drive.google.com/open?id=<example-file-id>'; var id = url.split('=')[1]; Logger.log(DriveApp.getFileById(id).getName());并且能够毫无问题地记录文件名。您是否尝试在提交表单时获取文件名? -
亲爱的 Rafa,是的,我正在尝试获取提交期间上传的所有文件的 URL。
标签: google-apps-script file-upload google-drive-api google-forms