Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
应用程序脚本urlFetchApp.fetch文件来自用户驱动器。从用户驱动器获取文件Blob_Url_Upload_Google Apps Script_Fetch - Fatal编程技术网

应用程序脚本urlFetchApp.fetch文件来自用户驱动器。从用户驱动器获取文件Blob

应用程序脚本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' 我试过前后斜杠的不同变体。到目

如何使用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'
我试过前后斜杠的不同变体。到目前为止运气不好

或者我用了错误的方法。也许我需要用别的方法来获取文件块

我确实找到了有关如何从用户驱动器将文件导入网站的信息:

但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.');
}