在新文件夹中创建文件

时间:2013-11-16 14:10:25

标签: php google-drive-api

我正在尝试创建一个文件夹,然后将该文件夹的ID传递给我创建为parent的新文件。

我有两个问题。

1 - 它创建了两个文件。一个内部根文件夹,另一个在新创建的文件夹中。

2 - 即使文件/文件夹是公开共享的,并且每个人都可以使用,它也不会返回webViewLink。 这是我正在使用的代码:

function createPublicFolder($service, $folderName) {
  $file = new Google_DriveFile();
  $file->setTitle($folderName);
  $file->setMimeType('application/vnd.google-apps.folder');

  $createdFile = $service->files->insert($file, array(
      'mimeType' => 'application/vnd.google-apps.folder',
  ));

  $permission = new Google_Permission();
  $permission->setValue('');
  $permission->setType('anyone');
  $permission->setRole('reader');

 $service->permissions->insert(
      $createdFile['id'], $permission);

  return $createdFile;
}

function insertFileIntoFolder($service, $folderId, $fileId) {
    $newParent = new Google_ParentReference();
    $newParent->setId($folderId);
     try {
        return $service->parents->insert($fileId, $newParent);
    } catch (Exception $e) {
        print "An error occurred: " . $e->getMessage();
    }
    return NULL;
}



$mainFolder = createPublicFolder($service,'New Folder');
            echo isset($mainFolder['webViewLink']) ? $mainFolder['webViewLink'] : 'Not found.';

            $file = new Google_DriveFile();
            $file->setTitle('My document');
            $file->setDescription('A test document');
            $file->setMimeType('text/plain');

            $data = file_get_contents('file.txt');

            $createdFile = $service->files->insert($file, array(
                  'data' => $data,
                  'mimeType' => 'text/plain',
                ));
            insertFileIntoFolder($service,$mainfolder['main_folder'],$createdFile['id']);
            echo isset($createdFile['webViewLink']) ? $createdFile['webViewLink'] : 'Not found.';

0 个答案:

没有答案