Php 获取要删除的已创建文件的文件ID-Google Drive API
我正在尝试使用GoogleDriveAPI获取一个创建文件的文件ID,这样我就可以使用它来删除文件。代码如下:Php 获取要删除的已创建文件的文件ID-Google Drive API,php,google-api,google-drive-api,google-api-php-client,Php,Google Api,Google Drive Api,Google Api Php Client,我正在尝试使用GoogleDriveAPI获取一个创建文件的文件ID,这样我就可以使用它来删除文件。代码如下: $file = new Google_Service_Drive_DriveFile(); $file->setName($fileName); $file->setDescription('Volunteer Hours'); $file->setParents(array($folderId)); $data = file_get_contents($filePa
$file = new Google_Service_Drive_DriveFile();
$file->setName($fileName);
$file->setDescription('Volunteer Hours');
$file->setParents(array($folderId));
$data = file_get_contents($filePath);
$createdFile = $this->service->files->create($file, array(
'data' => $data,
'uploadType' => 'multipart'
));
是否有某种.id
方法可以让我说:
$createdFileID = $createdFile.id;
我已经查看了GoogleDrive api,但没有找到任何这样的方法。我想要上传文件的id的原因是,如果我想使用特定id,我可以删除文件
最后,这里是我试图编写的函数:
// Deletes a specific file from a specific folder
function deleteFile($folderName, $fileID) {
}
这样,如果给定文件夹中有同名文件,我们将受到保护并删除正确的文件。我相信您的目标如下
$filename
的文件名存在于$folderName
的特定文件夹中时,您希望删除现有文件- 这样,可以使用
检索上载文件的文件ID$createdFileID
函数deleteFile($folderName,$filename){}
中使用文件名和文件夹名删除文件时,下面的示例脚本如何
示例脚本:
- 在这种情况下,当
的文件名存在于$filename
的特定文件夹中时,现有文件将被删除$folderName
function deleteFile($fileID) {
$client = getClient();
$drive = new Google_Service_Drive($client);
$drive->files->delete($fileID);
}
- 在这种情况下,不需要使用
。因为在谷歌硬盘上,所有文件都有唯一的文件ID$folderName
$createdFile = $this->service->files->create($file, array(
'data' => $data,
'uploadType' => 'multipart'
));
$createdFileID = $createdFile->getId(); // Added
function deleteFile($folderName, $fileName) {
$client = getClient();
$drive = new Google_Service_Drive($client);
$res1 = $drive->files->listFiles(array("q" => "name='{$folderName}' and trashed=false"));
$folderId = $res1->getFiles()[0]->getId();
$res2 = $drive->files->listFiles(array("q" => "name='{$fileName}' and '{$folderId}' in parents and trashed=false"));
if (count($res2->getFiles()) == 0) {
// When the filename of $fileName is not existing,
// do something
} else {
$fileId = $res2->getFiles()[0]->getId();
$drive->files->delete($fileId);
}
}
function deleteFile($fileID) {
$client = getClient();
$drive = new Google_Service_Drive($client);
$drive->files->delete($fileID);
}