我正在嘗試使用 php 將 google drive jpg 下載到服務器,以便將其保存為可用的 jpg,例如手動下載時。我可以從 filemeta 獲取 getWebContentLink 并保存擴展名為 .jpg 的“a”文件:$filemeta = $this->service->files->get($id,[ "fields"=>"*"]);$filename = public_path().'/test.jpg';$url=$filemeta->getWebContentLink();file_put_contents($filename, fopen($url, 'r'));然而,這不是真正的 jpg,確實無法使用<img src="/test.jpg" />元素顯示。設置:public function __construct() { $this->getClient(); $this->service= new Google_Service_Drive($this->client); } /** * @return Google_Client * @throws \Google_Exception */ protected function getClient() { $client = new Google_Client(); $client->setApplicationName('Google Drive API PHP Quickstart'); //20200521$client->setScopes(Google_Service_Drive::DRIVE_METADATA_READONLY); $client->setScopes(Google_Service_Drive::DRIVE_READONLY); // https://www.googleapis.com/auth/drive.readonly $client->setAuthConfig(base_path().'/apicredentials/google/credentials.json'); $client->setAccessType('offline'); $client->setPrompt('select_account consent'); // Load previously authorized token from a file, if it exists. // The file token.json stores the user's access and refresh tokens, and is // created automatically when the authorization flow completes for the first // time. $tokenPath = base_path().'/apicredentials/google/token.json'; if (file_exists($tokenPath)) { $accessToken = json_decode(file_get_contents($tokenPath), true); $client->setAccessToken($accessToken); } // If there is no previous token or it's expired. if ($client->isAccessTokenExpired()) { // Refresh the token if possible, else fetch a new one. if ($client->getRefreshToken()) { $client->fetchAccessTokenWithRefreshToken($client->getRefreshToken()); } } }
Google Drive API 下載 jpg
慕碼人2483693
2023-04-15 14:10:36