有没有办法检查文件是否已成功上传Google Drive API?

时间:2014-12-18 03:41:54

标签: php google-drive-api

我正在使用PHP sdk。我使用下面的代码将文件插入驱动器。

$file = new Google_DriveFile();
$file->setTitle($title);
$file->setDescription($description);
$file->setMimeType($mimeType);


if ($parentId != null) {
   $parent = new Google_ParentReference();
   $parent->setId($parentId);
   $file->setParents(array($parent));
}

$data = file_get_contents($uplodedFile['file']['tmp_name']);

$createdFile = $service->files->insert($file, array(
    'data' => $data,
    'mimeType' => $mimeType,
));

我想要做的是知道文件是否已成功上传到服务器。这个文件可能非常大,所以一旦完成,我想要通知。有没有办法用PHP sdk做到这一点?我不能使用实时API。

1 个答案:

答案 0 :(得分:2)

如果您阅读了API Documentation (insert),则可以看到他们将上传内容封装在try/catch块中。

try {
$data = file_get_contents($filename);

$createdFile = $service->files->insert($file, array(
   'data' => $data,
   'mimeType' => $mimeType,
));

// Uncomment the following line to print the File ID
// print 'File ID: %s' % $createdFile->getId();

return $createdFile;
} catch (Exception $e) {
    print "An error occurred: " . $e->getMessage();
}

您会在Response部分注意到:

  

如果成功,此方法将在响应正文中返回Files资源。

意味着您将获得上传的文件作为回报。否则,如上所示,将抛出catch()异常。

另外,如果你向下滚动,你会注意到他们有一个你可以使用的PHP库,并且在他们的功能中他们说:

@return Google_DriveFile The file that was inserted. NULL is returned if an API error occurred.