[使用php上传文件到Google驱动器并检索链接?

问题描述 投票:0回答:1

我可以使用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;
php google-drive-api
1个回答
0
投票

我已经做了一些研究,根据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

© www.soinside.com 2019 - 2024. All rights reserved.