谷歌驱动器文件夹不创建内部父文件夹(按文件夹ID)
问题描述:
我上传从我的网站上的文件,它会上传到谷歌驱动器内的子文件夹通过谷歌驱动器API。一切工作正常。但我想在父文件夹内创建一个文件夹。我有父文件夹ID。但它不能在父文件夹内创建。它会在父文件夹之外创建文件夹。谷歌驱动器文件夹不创建内部父文件夹(按文件夹ID)
我试图与下面的代码:
$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();
}
答
此代码的工作。
$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();
}
答
应该
$folder = new Google_Service_Drive_DriveFile(array('parents' => array($ParentfolderId)));
,而不是
$folder = new Google_Service_Drive_DriveFile(array('parents' => array($DriveFolderName)));
+0
对不起。我试过了 。但它不起作用 – vel
检查这一点,http://*.com/questions/30812325/google-drive-php-api-unable-to-insert-files-or-folders-into-subfolders –
我想*** $ DriveFolderName ***缺失。 –
@SoniVimal,号我试着用$ folder = new Google_Service_Drive_DriveFile(array('parents'=> array($ DriveFolderName)));.但它不起作用 – vel