我可以使用php将文件上传到Google驱动器,但无法获取链接。这是我的php代码,用于将文件上传到Google驱动器:
$client->setAccessToken($_SESSION['accessToken']);
$service = new Google_DriveService($client);
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$file = new Google_DriveFile();
foreach ($files as $file_name) {
$file_path = 'files/'.$file_name;
$mime_type = finfo_file($finfo, $file_path);
$file->setTitle($file_name);
$file->setDescription('This is a '.$mime_type.' document');
$file->setMimeType($mime_type);
$service->files->insert(
$file,
array(
'data' => file_get_contents($file_path),
'mimeType' => $mime_type
)
);
}
finfo_close($finfo);
header('location:'.$url);exit;
我已经做了一些研究,根据Google的说法,应该是这样:
$client->setAccessToken($_SESSION['accessToken']);
$service = new Google_DriveService($client);
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$file = new Google_DriveFile();
foreach ($files as $file_name) {
$file_path = 'files/'.$file_name;
$mime_type = finfo_file($finfo, $file_path);
$file->setTitle($file_name);
$file->setDescription('This is a '.$mime_type.' document');
$file->setMimeType($mime_type);
$upload = $service->files->insert(
$file,
array(
'data' => file_get_contents($file_path),
'mimeType' => $mime_type,
'fields' => 'embedLink'
)
);
}
finfo_close($finfo);
header('location:' . $upload->fields);exit;
如您所见,我添加了'fields' => 'embedLink'
,它请求嵌入链接。 fields
有很多不同的功能,但这似乎与您的问题有关。
[我不确定$upload->fields
是否可以正常工作,因为我只在Google的模拟器上对其进行了测试,但没有显示任何代码。该链接应该以响应形式(以JSON格式)发送回去,因此您可能必须使用json_decode()
来获取数据。您也可以尝试$upload->embedLink
。