Php 显示谷歌硬盘文件夹中的图像

Php 显示谷歌硬盘文件夹中的图像,php,laravel,google-drive-api,Php,Laravel,Google Drive Api,现在,我正在建立一个测试网站。在登录确认中,我必须向考生展示他们的照片,这些照片已经保存在Google Drive文件夹中 $optParams = array( 'pageSize' => 1, 'fields' => 'nextPageToken, files(contentHints/thumbnail,fileExtension,id,name,size)', 'q' =>"mimeTyp

现在,我正在建立一个测试网站。在登录确认中,我必须向考生展示他们的照片,这些照片已经保存在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.\n";
        } else {
            print "Files:\n";
            foreach ($results->getFiles() as $file) {
                printf("%s (%s)\n", $file->getName(), $file->getId());
            }
        }
这是我用来获取文件ID的方法。现在,为了将图像预览到页面,我必须下载图像(然后稍后删除)才能显示它,还是有其他方法不下载图像就可以执行此操作?

回答: 虽然Drive并非设计为托管平台,但您可以使用预览链接作为解决方案

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

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

https://drive.google.com/uc?export=view&id=[ID]
NB:此操作正常时,映像加载速度会很慢,因为映像托管不是驱动器的M.O。 还有一个iframe选项以嵌入的形式提供:

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

此iframe嵌入可从驱动器UI获得:

在上双击图像,然后按照
⋮ > 在新窗口中打开
菜单项,在新打开的选项卡中,按照
⋮ > 嵌入项…
菜单选项,iframe代码将以模式打开

我希望这对你有帮助

检查这篇文章