Папка на диске Google не создается внутри родительской папки (по идентификатору папки)

Я загружаю файлы со своего сайта, которые он будет загружать на диск Google внутри дочерней папки через Google Drive API. Все работает нормально. Но я хочу создать папку внутри родительской папки. У меня есть идентификатор родительской папки. Но он не может создать внутри родительской папки. Это создаст папку за пределами родительской папки.

Я пробовал с приведенным ниже кодом:

        $ParentfolderId="0Bxy_x723UM3tFFFSSSWWW";

$DriveFolderName = "foldername1";
$folder_mime = "application/vnd.google-apps.folder";
$folder_name = $DriveFolderName;
$folder = new Google_Service_Drive_DriveFile(array('parents' => array( $ParentfolderId)));
$folder->setTitle($folder_name);
$folder->setDescription($GoogleDriveDesc);
$folder->setMimeType($folder_mime);
$newFolder = $service->files->insert($folder);
$folderId  = $newFolder['id'];

$file = new Google_Service_Drive_DriveFile();

if ($folderId != null) {
$parent = new Google_Service_Drive_ParentReference();
$parent->setId($folderId);
$file->setParents(array($parent));
}
try {
$data = file_get_contents($filepath);
$file->title = $filename;
$chunkSizeBytes = 1 * 1024 * 1024;

$client->setDefer(true);
$request = $service->files->insert($file);

$media = new Google_Http_MediaFileUpload(
$client,
$request,
'',
null,
true,
$chunkSizeBytes
);

$media->setFileSize(filesize($filepath));
$status = false;
$handle = fopen($filepath, "rb");
while (!$status && !feof($handle)) {
$chunk = fread($handle, $chunkSizeBytes);
$status = $media->nextChunk($chunk);
}

$result = false;
if ($status != false) {
$result = $status;
}
return $result;

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

0

Решение

так должно быть

$folder = new Google_Service_Drive_DriveFile(array('parents' => array($ParentfolderId)));

вместо

$folder = new Google_Service_Drive_DriveFile(array('parents' => array($DriveFolderName)));
0

Другие решения

Этот код работает для.

        $ParentfolderId="0Bxy_x723UM3tFFFSSSWWW";

$DriveFolderName = "foldername1";
$folder_mime = "application/vnd.google-apps.folder";
$folder_name = $DriveFolderName;
$folder = new Google_Service_Drive_DriveFile(array('parents' => array( $ParentfolderId)));
$folder->setTitle($folder_name);
$folder->setDescription($GoogleDriveDesc);
$folder->setMimeType($folder_mime);

$parent = new Google_Service_Drive_ParentReference();
$parent->setId($ParentfolderId);
$folder->setParents(array($parent));

$newFolder = $service->files->insert($folder);
$folderId  = $newFolder['id'];

$file = new Google_Service_Drive_DriveFile();

if ($folderId != null) {
$parent = new Google_Service_Drive_ParentReference();
$parent->setId($folderId);
$file->setParents(array($parent));
}
try {
$data = file_get_contents($filepath);
$file->title = $filename;
$chunkSizeBytes = 1 * 1024 * 1024;

$client->setDefer(true);
$request = $service->files->insert($file);

$media = new Google_Http_MediaFileUpload(
$client,
$request,
'',
null,
true,
$chunkSizeBytes
);

$media->setFileSize(filesize($filepath));
$status = false;
$handle = fopen($filepath, "rb");
while (!$status && !feof($handle)) {
$chunk = fread($handle, $chunkSizeBytes);
$status = $media->nextChunk($chunk);
}

$result = false;
if ($status != false) {
$result = $status;
}
return $result;

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

По вопросам рекламы [email protected]