应用程序脚本urlFetchApp.fetch文件来自用户驱动器。从用户驱动器获取文件Blob
如何使用Google Apps脚本从用户驱动器检索文件?我试过:应用程序脚本urlFetchApp.fetch文件来自用户驱动器。从用户驱动器获取文件Blob,url,upload,google-apps-script,fetch,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' 我试过前后斜杠的不同变体。到目
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'
我试过前后斜杠的不同变体。到目前为止运气不好
或者我用了错误的方法。也许我需要用别的方法来获取文件块
我确实找到了有关如何从用户驱动器将文件导入网站的信息:
但Caja似乎确实去除或阻止了一个正在定义的新blob
我在这个网站上找到了这个代码:
当我在Chrome中运行Notepad++中的代码时,它可以正常运行。当我在Chrome的谷歌应用程序脚本中运行这些代码时,出现了一些问题。所以显然有一种上传文件的方法。这种事经常发生。但我不能通过谷歌应用程序脚本中的HTML服务来实现。我可以触发一个谷歌应用程序脚本UI,它将从用户计算机上传一个文件到我的谷歌硬盘。我想这是我唯一的选择。我不知道如何在HTML页面中嵌入UI。不可能。您的gas代码运行在google服务器上,而不是您的浏览器/计算机上。 您唯一的希望是使用htmlService客户端javascript实现这一点,但我怀疑您可能需要的html5功能(我怀疑存在读取文件路径的功能)可能会因为“caja”限制而无法工作。
如果它始终是一个图像,您可以将其加载到浏览器上,您也可以使用canvas来捕获数据url,但我再次怀疑它是否可以通过htmlService来完成,因为有人试图找到一种方法,让您的应用程序脚本的用户能够将文件从他们的计算机上载到您的Google Drive,下面是关于如何执行此操作的堆栈溢出说明
我原以为没有任何方法可以用HTML服务上传文件,但确实有。我花了很多时间在UI服务
createFileUpload()
上,所有这些都是浪费时间。以一种扭曲的方式,这不是不可能的,但怀疑它是否有用:将读取数据的根目录放在计算机的google drive sync根目录中。因此,该文件夹将与您的谷歌硬盘同步。从gas只需使用driveApp查找并获取文件的blob。通过完整路径查找文件时,旧的documentApp可能更有用。
// 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.');
}