【问题标题】:Apps Script urlFetchApp.fetch file from users drive. Get file Blob from users driveApps 脚本 urlFetchApp.fetch 来自用户驱动器的文件。从用户驱动器获取文件 Blob
【发布时间】:2014-04-21 09:46:49
【问题描述】:

如何使用 Google Apps 脚本从用户驱动器中检索文件?我试过了:

var fetchURL = 'file:///C://Users//Gigabyte//Pictures//file_name.JPG';
var image = UrlFetchApp.fetch(fetchURL).getBlob();

我尝试过使用转义字符而不是斜杠。

'file:%2F%2F%2FC:%2FUsers%2FGigabyte%2FPictures%2Ffile_name.JPG'

我尝试了不同的反斜杠和正斜杠变体。到目前为止没有运气。

或者我可能以错误的方式处理这个问题。也许我需要以其他方式获取文件 blob?

我确实找到了有关如何从用户驱动器中获取文件到网站的信息: Stackoverflow Understanding

但 Caja 似乎确实去除或阻止了正在定义的新 blob。

我在这个网站上找到了这个代码:HTML5 Rocks

// Check for the various File API support.
if (window.File && window.FileReader && window.FileList && window.Blob) {
  alert('Great success! All the File APIs are supported.');
} else {
  alert('The File APIs are not fully supported in this browser.');
}

当我在 Chrome 中从 Notepad++ 运行该代码时,它检查正常。当我在 Chrome 中的 Google Apps 脚本中运行该代码时,出现了问题。所以, 。 . .显然有一种上传文件的方法。它一直在发生。但我无法通过 Google Apps Script 中的 HTML 服务来实现。我可以触发 Google Apps 脚本 UI,它将文件从用户计算机上传到我的 Google 驱动器。我想这是我唯一的选择。我不知道如何在 HTML 页面中嵌入 UI。

【问题讨论】:

    标签: url upload google-apps-script fetch


    【解决方案1】:

    为了让任何人试图找到一种方法让您的 Apps 脚本用户能够将文件从他们的计算机上传到您的 Google 云端硬盘,这里有一个 Stack Overflow 解释,说明如何做到这一点。

    File Upload with HTML Service

    我曾认为没有任何方法可以使用 HTML 服务上传文件,但确实有。我花了很多时间在 UI 服务 createFileUpload() 上苦苦挣扎,而这一切都是浪费时间。

    【讨论】:

      【解决方案2】:

      不可能。您的气体代码运行在谷歌服务器上,而不是您的浏览器/计算机上。 您唯一的希望是使用 htmlService 客户端 javascript 来执行此操作,但我怀疑您可能需要的 html5 功能(我怀疑存在读取文件路径的功能)可能由于“caja”限制而无法工作。 如果它总是一个图像并且你可以让它加载到浏览器上你也可以使用画布来捕获数据 url 但我再次怀疑它可以从 htmlService 完成

      【讨论】:

      • 以一种扭曲的方式,它并非不可能,但怀疑它是否有用:将读取数据的根目录放在计算机的谷歌驱动器同步根目录中。因此该文件夹将与您的谷歌驱动器同步。从 gas 只需使用 driveApp 查找并获取文件的 blob。旧的 documentApp 对于通过完整路径查找文件可能更有用。
      猜你喜欢
      • 2018-08-31
      • 1970-01-01
      • 1970-01-01
      • 2019-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多