使用Google Drive API for PHP,在设置;“永远保持预见”;真的吗?

使用Google Drive API for PHP,在设置;“永远保持预见”;真的吗?,php,google-drive-api,Php,Google Drive Api,我试图允许文件上传覆盖以前的副本,并将修订历史永久保存在Google Drive中。另外…我是否需要使用设置的ID上载,或者文件名是否将以本机方式覆盖 以下是我的测试函数示例: function uploadFile($filename = "") { $title="testFile"; $description="Testing the upload of the file"; $mimeType=

我试图允许文件上传覆盖以前的副本,并将修订历史永久保存在Google Drive中。另外…我是否需要使用设置的ID上载,或者文件名是否将以本机方式覆盖

以下是我的测试函数示例:

function uploadFile($filename = "")
{
    
    $title="testFile";
    $description="Testing the upload of the file";
    $mimeType="image/jpeg";
    $filename = ROOTPATH."IMG_1232.JPG"; //Temporarily overriding $filename for testing.
    $file = new Google_Service_Drive_DriveFile();
    $file->setName($title);
    $file->setDescription($description);
    $file->setMimeType($mimeType);

    // Set the parent folder.
    if ($parentId != null) {
        $parent = new Google_Service_Drive_ParentReference();
        $parent->setId($parentId);
        $file->setParents(array($parent));
    }

    try {
        $data = file_get_contents($filename);
        
        $this->startGDService();
        
        $createdFile = $this->service->files->create($file, array(
            'data' => $data,
            'mimeType' => $mimeType,
            'keepRevisionForever' => true //  <---This doesn't seem to work.
            ));

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

    return;
}
函数上传文件($filename=”“)
{
$title=“testFile”;
$description=“正在测试文件的上载”;
$mimeType=“图像/jpeg”;
$filename=ROOTPATH。“IMG_1232.JPG”;//临时覆盖$filename进行测试。
$file=新的Google_服务_驱动器_驱动器文件();
$file->setName($title);
$file->setDescription($description);
$file->setMimeType($mimeType);
//设置父文件夹。
如果($parentId!=null){
$parent=新的Google_服务_驱动器_ParentReference();
$parent->setId($parentId);
$file->setParents(数组($parent));
}
试一试{
$data=file\u get\u contents($filename);
$this->startGDService();
$createdFile=$this->service->files->create($file,array)(
“数据”=>$data,
“mimeType”=>$mimeType,

“KeeprovisionForever”=>true/看起来我使用了错误的函数。创建函数将始终在驱动器上创建文件。若要覆盖特定文件,需要使用update()函数。请参见此处:

function updateFile($filename, $fileID)
{
    $this->startGDService();
    $filename = UPLOAD_PATH.$filename;
    $mimetype = mime_content_type ($filename);
    try {
        $emptyFile = new Google_Service_Drive_DriveFile();
        $data = file_get_contents($filename);
        $this->service->files->update($fileID, $emptyFile, array(
            'data' => $data,
            'mimeType' => $mimetype,
            'uploadType' => 'multipart',
            'keepRevisionForever' => true
        ));
    } catch (Exception $e) {
        print "An error occurred: " . $e->getMessage();
    }
}