谷歌表单文件上传:获取文件名而不是文件链接

Posted

技术标签:

【中文标题】谷歌表单文件上传:获取文件名而不是文件链接【英文标题】:Google form file upload: get filename instead of link to file 【发布时间】:2020-02-14 01:46:41 【问题描述】:

我有一个简单的谷歌表单,它有一个文件上传选项。上传的文件保存在我的驱动器文件夹中。然后我有一个简单的脚本,它在表单提交时执行,以将表单值(上传文件名、名称和电子邮件)保存到文本文件中。这是我的应用脚本:

function onSubmit(e)

  var file = e.values[1]; // getting the link instead of the filename 
  var name = e.values[2];
  var email = e.values[3];

  var folderId = "0B6de05UZOb0y1ck4tV3BPWldpMU14SGZncnlHa0tzTXVoZFk";

  var folder = DriveApp.getFolderById(folderId);

  var content = file + "\n" + name + "\n" + email + "\n"

  var file = folder.createFile('My File.txt', content, MimeType.PLAIN_TEXT);  

下面是输出文件My File.txt 的样子:

https://drive.google.com/open?id=1bVbNAnES33oY4gx8npdp51ZSMekQalk
My Name
my@email.com

我的问题是 - 我想要的是实际的文件名,而不是上传文件的链接。有没有办法从表单响应参数e 中获取文件名?

【问题讨论】:

【参考方案1】:

如果您有文件 ID,则可以使用 getName() 方法获取文件名。

Documentation

示例

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();


【讨论】:

完美!这正是我所需要的。我试图找到一个函数来从 url 获取文件 id,但找不到一个

以上是关于谷歌表单文件上传:获取文件名而不是文件链接的主要内容,如果未能解决你的问题,请参考以下文章

JavaWeb之文件上传下载

文件未在 cakephp 中使用 Ajax 上传

使用超链接和后台Servlet实现文件上传和下载(附图和代码)

form里面文件上传并预览

Angular 6 - 上传后获取 Firebase 存储文件的下载 URL

将表单文件附加到电子邮件,Codeigniter