且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在 Laravel 中使用 Google Drive API

更新时间:2023-01-18 13:50:38

用于登录 + 文件上传到驱动器 (https://github.com/google/google-api-php-client/blob/master/examples/large-file-upload.php)

';$client_secret = '';$redirect_uri = '';$client = new Google_Client();$client->setClientId($client_id);$client->setClientSecret($client_secret);$client->setRedirectUri($redirect_uri);$client->addScope("https://www.googleapis.com/auth/drive");$service = new Google_Service_Drive($client);如果(isset($_REQUEST ['注销'])){取消设置($_SESSION['upload_token']);}if (isset($_GET['code'])) {$client->authenticate($_GET['code']);$_SESSION['upload_token'] = $client->getAccessToken();$redirect = 'http://' .$_SERVER['HTTP_HOST'] .$_SERVER['PHP_SELF'];header('位置:' .filter_var($redirect, FILTER_SANITIZE_URL));}如果 (isset($_SESSION['upload_token']) && $_SESSION['upload_token']) {$client->setAccessToken($_SESSION['upload_token']);if ($client->isAccessTokenExpired()) {未设置($_SESSION['upload_token']);}} 别的 {$authUrl = $client->createAuthUrl();}/****************************************************如果我们已登录,那么让我们尝试上传我们的文件.****************************************************/如果 ($client->getAccessToken()) {$file = new Google_Service_Drive_DriveFile();$file->title = "大文件";$chunkSizeBytes = 1 * 1024 * 1024;//调用带有媒体上传的 API,延迟使其不会立即返回.$client->setDefer(true);$request = $service->files->insert($file);//创建一个媒体文件上传来代表我们的上传过程.$media = 新 Google_Http_MediaFileUpload($客户,$请求,'文本/纯文本',空值,真的,$chunkSizeBytes);$media->setFileSize(filesize(TESTFILE));//上传各种块.$status 将是假的,直到进程结束//完全的.$status = false;$handle = fopen(TESTFILE, "rb");while (!$status && !feof($handle)) {$chunk = fread($handle, $chunkSizeBytes);$status = $media->nextChunk($chunk);}//$status 的最终值将是来自对象的 API 的数据//已上传.$result = false;如果($状态!=假){$result = $status;}fclose($handle);}echo pageHeader("文件上传 - 上传大文件");如果 ($client_id == ''||$client_secret == ''||$redirect_uri == '') {echo missingClientSecretsWarning();}?><div class="box"><div class="请求"><?php if (isset($authUrl)): ?><a class='login' href='<?php echo $authUrl;?>'>连接我!</a><?php endif;?>