Как показать личное изображение с Google Диска с помощью PHP API?

В документации по API показан этот пример:

$fileId = '1ZdR3L3qP4Bkq8noWLJHSr_iBau0DNT4Kli4SxNc2YEo';
$content = $driveService->files->export($fileId,
  'application/pdf',
  array('alt' => 'media')
);

Как показать изображение в HTML?

(Я уже выяснил, как работает авторизация с помощью Google API.)

1 ответ

  1. Можно внедрить необработанные данные изображения с помощью base64_encode

    Вызов API возвращает объект ответа GuzzleHttp, поэтому можно получить необработанные данные путем вызова:

    $rawData = $response->getBody()->getContents();
    // Alternatively, you should be able to cast it to a string (I would try the first method then this alternative if you want)
    $rawData = (string) $response->getBody();
    

    Чтобы внедрить эти необработанные данные в виде html<img />, вы можете сделать что-то вроде:

    // Convert to base64 encoding
    $imageData = base64_encode($rawData);
    
    // Get the content-type of the image from the response
    $contentType = $response->getHeader("content-type");
    
    // Format the image src:  data:{mime};base64,{data}
    $src = 'data: '.$contentType.';base64,'.$imageData;
    
    // Echo out a sample image
    echo '<img src="'.$src.'" />';
    

    Источник