Загрузить файл на Google Drive, используя php и получить ссылку? - PullRequest
0 голосов
/ 10 января 2020

Я могу загрузить свой файл на диск Google, используя php, но не могу получить ссылку. Вот мой 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;

1 Ответ

0 голосов
/ 11 января 2020

Я провел некоторое исследование и, по словам 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...