Title: asignar ruta a google drive para guardar archivo
Tags: php;google-api;google-drive
Question: ¿en que parte se le asigna el parametro de la carpeta destino a google drive para que guarde el archivo?

me esta guardando en raiz el archivo y quiero que lo pongan en la carpeta estudios

en mi variable $folderId tengo la ruta 

```     function insertaArchivoDrive($service, $nombre_estudio, $folderId, $data,$ruta){
        // This is uploading a file directly, with no metadata associated.

        function leerPorPedazos($fp, $bytesDelPedazo){
            $totalBytes = 0;
            $pedazoGigante = "";
            while (!feof($fp)) {
                $pedazo = fread($fp, 8192);
                $totalBytes += strlen($pedazo);
                $pedazoGigante .= $pedazo;
                if ($totalBytes &gt;= $bytesDelPedazo) {
                    return $pedazoGigante;
                }
            }
            return $pedazoGigante;
        }

        $archivoDrive = new Google_Service_Drive_DriveFile();
        $archivoDrive-&gt;setName($nombre_estudio);
        $archivoDrive-&gt;setDescription('A test zip');
        $archivoDrive-&gt;setMimeType('application/zip');

        $bytesDelPedazo = 1 * 1024 * 1024; //128Kbs

        $paramsOpc = array(
            'fields' =&gt; '*'
        );

        $this-&gt;client-&gt;setDefer(true);
        $solicitud = $service-&gt;files-&gt;create($archivoDrive,$paramsOpc);        
        $multimedia = new Google_Http_MediaFileUpload(
            $this-&gt;client,
            $solicitud,
            "application/zip",
            null,
            true,
            $bytesDelPedazo
        );
        $multimedia-&gt;setFileSize(filesize($ruta));

        $estado = false;
        $fp = fopen($ruta, "rb");
        while (!$estado &amp;&amp; !feof($fp)) {
            // leemos hasta que dejamos de obtener $bytesDelPedazo del $archivoLocal
            $pedazo = leerPorPedazos($fp, $bytesDelPedazo);
            $estado = $multimedia-&gt;nextChunk($pedazo);
        }
        echo "Id del archvio: " . $estado-&gt;id;
    echo "Folder del archivo: " . $estado-&gt;parents[0];
        //var_dump($estado);
        return $estado;
}
```


Here is the accepted answer: Para asignar un folder en dónde se ha de guardar el archivo, hay que especificarlo en los metadatos del archivo. Hay dos formas de hacerlo; La forma que vos estás usando es poniendo cada valor llamando un método dentro del objeto. La otra es ponerlo todo usando un arreglo. Te dejo la demostración de ambas.

La forma que vos estás usando

```$archivoDrive = new Google_Service_Drive_DriveFile();
$archivoDrive-&gt;setName($nombre_estudio);
$archivoDrive-&gt;setDescription('A test zip');
$archivoDrive-&gt;setMimeType('application/zip');
$archvioDrive-&gt;setParents(['id-del-folder']); //aquí se agrega el folder
```

La otra forma

```$archivoDrive = new Google_Service_Drive_DriveFile(array(
    'name' =&gt; $nombre_estudio,
    'description' =&gt; 'A test zip',
    'mimeType' =&gt; 'application/zip',
    'parents' =&gt; ['id-del-folder'] //aquí se agrega el folder
));
```

Cualquiera de las dos da el mismo resultado. Yo prefiero la última porque me es más limpio para leer.

Comment for this answer: ya quedo muchas gracias quize quitar el array $paramsOpc = array(
            'fields' => '*'
        );  pense que no servia  y lo comente pero al quitarlo no me descargaba el archivo  ¿que hace ese array?
Comment for this answer: ese arreglo se encarga de especificar cuales propiedades mostrar cuando el archivo esté cargado. El asterisco representa el valor de **todas**


{'source': 'StackExchangeDataset', 'subset': 'es.stackoverflow.com', 'metadata': {'AnswerCount': 1, 'CommentCount': 0, 'ContentLicense': 'CC BY-SA 4.0', 'CreationDate': '2019:00:07/31/19', 'FavoriteCount': None, 'PostTypeId': 1, 'Tags': '<php><google-api><google-drive>', 'Title': 'asignar ruta a google drive para guardar archivo', 'ViewCount': 337, 'id': 282852, 'user_AboutMe': None, 'user_AccountId': 9757709.0, 'user_DisplayName': 'Carlos Enrique Gil Gil', 'user_Reputation': 776.0, 'user_Views': 181.0, 'user_id': 24431.0}}