Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.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
AppsScript-在HtmlService中使用来自Google Drive的图像_Html_Image_Google Apps Script - Fatal编程技术网

AppsScript-在HtmlService中使用来自Google Drive的图像

AppsScript-在HtmlService中使用来自Google Drive的图像,html,image,google-apps-script,Html,Image,Google Apps Script,下面文档的“图像”部分 表示只能显示位于公共url上的图像(由于使用了图像代理) 这是否适用于存储在用户谷歌硬盘中的图像? 有没有办法将这些图像用作HtmlService元素?听起来你想从Google Drive提供某种公众可访问的永久链接 打开文件 在文件菜单下,单击共享 在“谁有访问权”下,单击更改。 选择“网上公开”。 单击“完成”,然后复制列出的链接。这是你的公开链接,应该为你工作。 目前还没有一种方法可以满足您的要求。您可以使用base 64编码嵌入图像 function g

下面文档的“图像”部分

表示只能显示位于公共url上的图像(由于使用了图像代理)

这是否适用于存储在用户谷歌硬盘中的图像?
有没有办法将这些图像用作HtmlService元素?

听起来你想从Google Drive提供某种公众可访问的永久链接

  • 打开文件

  • 在文件菜单下,单击共享

  • 在“谁有访问权”下,单击更改。

  • 选择“网上公开”。

  • 单击“完成”,然后复制列出的链接。这是你的公开链接,应该为你工作。


目前还没有一种方法可以满足您的要求。

您可以使用base 64编码嵌入图像

function getFileBase64s(fileName) {
  var output = [];
  if (typeof fileName === 'string'){
    var fileIterator = DriveApp.getFilesByName(fileName);
    while (fileIterator.hasNext()) output.push(Utilities.base64Encode(fileIterator.next().getBlob().getBytes()));
  } else {
    SpreadsheetApp.getUi().alert('File name: '+fileName+' is not an string')
  };
  return output;
};
在HTML模板中:


当您使用高级驱动器服务访问文件时,元数据具有一个名为“thumbnailLink”的属性,该属性适用于在Html服务中显示图像,尤其是当您不想公开共享的文件时。它也比base64方法快得多。链接将在数小时内过期,因此您每次都需要执行一个新的请求

对于单个图像,以下操作可以实现此目的:


Drive.Files.get(id).thumbnailLink
Nice!谢谢你的提醒(错误等)。事实上,我不想永久链接到谷歌硬盘上的图片视图,但实际上我将该图片作为html的一个元素。再次感谢你的明确回答。你知道有没有计划支持这一点吗?有驱动器却不能在HtmlOutput中使用它似乎有点奇怪。我不能保证任何事情,但这肯定是我们已经意识到并正在研究的一个用例。现在限制实际上已经取消了。您可以使用drive.google.com/uc?export=view&id=链接到google drive上的私人图像。但是授权有点奇怪。我有两个开发谷歌帐户和我的个人谷歌帐户,没有特权的应用程序以及图像登录。谷歌应用程序允许我访问该应用程序,但它在加载图像时给了我403。在我注销个人帐户后,它突然起了作用。不确定发生了什么。你可以创建、插入图像、复制图像链接并在谷歌应用程序脚本中使用它:)