Php 动态创建文件夹和子文件夹

Php 动态创建文件夹和子文件夹,php,google-drive-api,google-api-php-client,Php,Google Drive Api,Google Api Php Client,我有几个php脚本来创建文件夹并将文件上传到所需的文件夹,但我似乎无法创建新文件夹、新子文件夹或创建其他函数来完成此过程。我是否必须使用特定于父母/子女的程序?以下是我用来创建文件夹的功能代码: function getFolderExistsCreate($service, $folderName, $folderDesc) { // Lista el root de drive $files = $service->files->listFiles(); $found = fal

我有几个php脚本来创建文件夹并将文件上传到所需的文件夹,但我似乎无法创建新文件夹、新子文件夹或创建其他函数来完成此过程。我是否必须使用特定于父母/子女的程序?以下是我用来创建文件夹的功能代码:

function getFolderExistsCreate($service, $folderName, $folderDesc) {
// Lista el root de drive
$files = $service->files->listFiles();
$found = false;

// Checa los folders en ciclo
foreach ($files['items'] as $item) {
    if ($item['title'] == $folderName) {
        $found = true;
        return $item['id'];
        break;
    }
}

// Lo crea si no lo encontro
if ($found == false) {
    $folder = new Google_Service_Drive_DriveFile();

    //Poner los settings del folder
    $folder->setTitle($folderName);

    if(!empty($folderDesc))
        $folder->setDescription($folderDesc);

    $folder->setMimeType('application/vnd.google-apps.folder');

    //Try de crear el folder
    try {
        $createdFile = $service->files->insert($folder, array(
            'mimeType' => 'application/vnd.google-apps.folder',
            ));

        // Regresa el nuevo id del folder
        return $createdFile->id;
    } catch (Exception $e) {
        print "An error occurred: " . $e->getMessage();
    }
  }
}

请帮忙,谢谢

要创建特定文件夹的子文件夹,应在文件的
parents
属性中指定正确的ID

"parents": [{"id":"0ADK06pfg"}]
查看此项了解更多信息


希望有帮助

您需要设置要放置它的文件夹的父id

代码来自


获取文件夹id的最简单方法是使用q搜索选项仅搜索文件夹
mimeType='application/vnd.google apps.folder'
,然后您可以找到要将新文件夹或文件放入其中的文件夹

类Google\u Service\u Drive\u ParentReference()似乎不再工作了。。使用以下命令:

$fileMetadata = new Google_Service_Drive_DriveFile(array(
        //Set the Random Filename
        'name' => $rdmName,
        //Set the Parent Folder
        'parents' => array('0BzaRxkCDivjIM1pUYU1SLWVxOGM')
    ));


    try{


        $newFile = $drive_service->files->create(
            $fileMetadata,
            array(
                'data' => file_get_contents(TESTFILE),
                'mimeType' => 'application/pdf',
                'uploadType' => 'media'
            )
        );


    } catch(Exception $e){

        echo 'An error ocurred : ' . $e->getMessage();

    }
$fileMetadata = new Google_Service_Drive_DriveFile(array(
        //Set the Random Filename
        'name' => $rdmName,
        //Set the Parent Folder
        'parents' => array('0BzaRxkCDivjIM1pUYU1SLWVxOGM')
    ));


    try{


        $newFile = $drive_service->files->create(
            $fileMetadata,
            array(
                'data' => file_get_contents(TESTFILE),
                'mimeType' => 'application/pdf',
                'uploadType' => 'media'
            )
        );


    } catch(Exception $e){

        echo 'An error ocurred : ' . $e->getMessage();

    }