如何显示Google Drive文件夹中的图像?

2022-02-23 00:00:00 google-drive-api php laravel

我正在建设一个测试网站。在登录确认时,我必须向考生展示他们的图片,这些图片已经保存在Google Drive文件夹中。

$optParams = array(
            'pageSize' => 1,
            'fields' => 'nextPageToken, files(contentHints/thumbnail,fileExtension,id,name,size)',
            'q' =>"mimeType contains 'image/' AND name contains '".$imageId."' AND '".$folderIdId."' in parents"
          );
          $results = $googleDriveService->files->listFiles($optParams);
          
        if (count($results->getFiles()) == 0) {
            print "No files found.
";
        } else {
            print "Files:
";
            foreach ($results->getFiles() as $file) {
                printf("%s (%s)
", $file->getName(), $file->getId());
            }
        }

这是我用于获取文件ID的方式。现在要将图像预览到页面,我是必须下载图像(稍后删除)才能显示它,还是有其他方法可以不下载即可完成此操作?


解决方案

答案:

虽然Drive不是设计为托管平台,但您可以使用预览链接作为解决办法。

详细信息:

我真的应该在这里重申:Drive并不是被设计成一个映像托管平台。它主要是一个文件共享和云存储解决方案,但也提供了通过预览、查看和嵌入链接查看图像的方法。

您可以使用以下链接,将[ID]替换为您的图像ID以在页面中嵌入或预览图像:

https://drive.google.com/uc?export=view&id=[ID]

NB:虽然此方法有效,但由于映像托管不是驱动器的操作方式,因此映像加载速度会很慢。 还有一个以嵌入形式提供的IFRAME选项:

<iframe src="https://drive.google.com/file/d/[ID]/preview" width="640" height="480"></iframe>

此iFrame嵌入可从驱动器UI获取:

双击drive.google.com处的图像并跟随⋮ > Open in new window菜单项,在新打开的选项卡中跟随⋮ > Embed item...菜单选项,iFrame代码将以模式打开。

相关文章