2015-05-06 2 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 файла.

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

Проверить это page для получения дополнительной информации

Надежда, что помогает!

1

Вам нужно установить родительский идентификатор папки, которую вы хотите поместить его в.

код из files.insert

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

Eastest способ получить идентификатор папки, чтобы сделать files.list использовать д поиск для поиска только в папках 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(); 

    } 
Смежные вопросы