来自用户驱动器的Apps脚本urlFetchApp.fetch文件。从用户驱动器获取文件Blob

时间:2014-04-09 01:07:08

标签: url upload google-apps-script fetch

如何使用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脚本中的HTML服务来实现。我可以触发Google Apps脚本用户界面,该用户界面会将文件从用户计算机上传到我的Google云端硬盘。我猜这是我唯一的选择。我不知道在HTML页面中嵌入UI的方法。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

为了试图找到让您的Apps脚本用户能够将文件从他们的计算机上传到您的Google云端硬盘的方法,以下是有关如何操作的Stack Overflow说明。

File Upload with HTML Service

我原以为没有办法用HTML服务上传文件,但有。我花了很多时间来处理UI服务createFileUpload(),这一切都是浪费时间。