我在谷歌找到了很多资源,但我仍然无法解决它。 我的代码是相同的谷歌驱动器API下载图像,但它返回此 download file return metadata
这是我的代码下载
public function download($id)
{
$this->initializeToken();
// $token = \Session::get('token');
// $this->client->setAccessToken($token);
// dd($id);
$response = $this->drive->files->get($id, [
'alt' => 'media'
]);
$content = $response->getBody()->getContents();
file_put_contents("blogxxx.png", $data);
}
它返回上面的图像。 我试着卷曲。
public function download($id)
{
$this->initializeToken();
$response = $this->drive->files->get($id, [
'alt' => 'media'
]);
$content = $response->getBody()->getContents();
$oAuthToken = $token['access_token'];
$getUrl = 'https://www.googleapis.com/drive/v2/files/' . $id . '?alt=media';
$authHeader = 'Authorization: Bearer ' . $oAuthToken ;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $getUrl);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
$authHeader ,
]);
$data = curl_exec($ch);
// dd($data);
curl_close($ch);
file_put_contents("blogxxx.png", $data);
}
但我仍然会返回相同的结果。
我可以解决它约3天:(感谢任何帮助我。
解决 虽然没有人帮助我,但我仍然用非常简单的解决方案来解决它。 您只需添加响应标头并回显下面的$ content:
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"123.png\"");
echo $content;
3天后它对我有用。是啊:)