2015-05-06 137 views
1

我有幾個腳本在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(); 
    } 
    } 
} 

請幫助,謝謝!

回答

2

要創建特定文件夾的子文件夾,您應該在文件的parents屬性中指定正確的ID。

"parents": [{"id":"0ADK06pfg"}] 

檢查這個page瞭解更多信息

希望幫助!

1

您需要設置要放置在文件夾中的父ID。

代碼files.insert

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

獲得的文件夾ID Eastest的方法是做一個files.list用q搜索選項僅搜索文件夾mimeType = 'application/vnd.google-apps.folder'然後您可以找到要將新文件夾或文件放入的文件夾。

0

看來,類Google_Service_Drive_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(); 

    }