为了账号安全,请及时绑定邮箱和手机立即绑定

获取要删除的已创建文件的文件 ID - Google Drive API

获取要删除的已创建文件的文件 ID - Google Drive API

PHP
浮云间 2023-10-01 17:17:38
我正在尝试使用 google Drive API 获取创建的文件的文件 ID,以便我可以使用它来删除文件。这是代码:$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;我查看了 google Drive api 但找不到任何这样的方法。我想要上传文件的 id 的原因是,如果我想使用该特定 id,我可以删除文件最终,这是我要编写的函数:// Deletes a specific file from a specific folderfunction deleteFile($folderName, $fileID) {}这样,如果给定文件夹中碰巧存在同名文件,我们就可以受到保护并删除正确的文件。
查看完整描述

1 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

我相信你的目标如下。

  1. 您想要使用 php 的 googleapis 检索 Google Drive 上上传文件的文件 ID。

  2. 当 的文件名$fileName存在于 的特定文件夹中时$folderName,您想要删除现有文件。

问题1的回答:

既然如此,下面的修改如何?

从:

$createdFile = $this->service->files->create($file, array(

    'data' => $data,

    'uploadType' => 'multipart'

));

到:

$createdFile = $this->service->files->create($file, array(

    'data' => $data,

    'uploadType' => 'multipart'

));

$createdFileID = $createdFile->getId();  // Added

这样,就可以通过 来检索上传文件的文件 ID $createdFileID。

问题2的回答:

当您想使用 的文件名和文件夹名称删除文件时function deleteFile($folderName, $fileName) {},下面的示例脚本怎么样?


示例脚本:

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);

    }

}

在这种情况下,当 的文件名$fileName存在于 的特定文件夹中时$folderName,现有文件将被删除。

参考:

  • 文件:删除

添加:

当您想使用文件ID删除文件时,可以使用以下脚本。

function deleteFile($fileID) {

    $client = getClient();

    $drive = new Google_Service_Drive($client);

    $drive->files->delete($fileID);

}

在这种情况下,$folderName不需要使用。因为在 Google Drive 中,所有文件都有唯一的文件 ID。


查看完整回答
反对 回复 2023-10-01
  • 1 回答
  • 0 关注
  • 85 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信