PHP

2013-08-21 6 views
7

के साथ Google ड्राइव एपीआई का उपयोग करके विशिष्ट फ़ोल्डर में फ़ाइल अपलोड करना मैं फ़ाइलों को अपलोड करने के लिए Google ड्राइव एपीआई का उपयोग कर रहा हूं, यह मेरा कोड अब तक है अब फ़ाइल मेरी रूट पर अपलोड है और मैं पथ को किसी अन्य फ़ोल्डर में बदलना चाहता हूं,PHP

<?php 
     error_reporting(E_ALL); 
     ini_set('display_errors', 1); 
     require_once 'google-api-php-client/src/Google_Client.php'; 
     require_once 'google-api-php-client/src/contrib/Google_DriveService.php'; 
     $client = new Google_Client(); 
     // Get your credentials from the APIs Console 
     $client->setClientId('***'); 
     $client->setClientSecret('***'); 
     $client->setRedirectUri('http://***'); 
     $client->setScopes(array('https://www.googleapis.com/auth/drive')); 

     if(empty($_GET['code'])) 
     { 
      $client->authenticate(); 
     } 

     $myfile= "video.mp4"; 
     $type='video/mp4'; 

     $service = new Google_DriveService($client); 

     // Exchange authorization code for access token 
     $accessToken = $client->authenticate($_GET['code']); 
     $client->setAccessToken($accessToken); 


     //Insert a file 

     $file = new Google_DriveFile(); 
     $file->setTitle('filename.mp4'); 
     $file->setDescription('A video'); 
     $file->setMimeType($type); 

     $data = file_get_contents($myfile); 

     $createdFile = $service->files->insert($file, array(
       'data' => $data, 
       'mimeType' => $type, 
      )); 

     print_r($createdFile); 
     echo "<br />"; 

मैं stackoverflow से कुछ पदों की कोशिश की और उनमें से कोई भी मेरे लिए काम किया मैं त्रुटि मिली, अग्रिम

उत्तर

3

धन्यवाद माता पिता आईडी की एक सूची से काम करना चाहिए की स्थापना। हमारे सार्वजनिक दस्तावेज में प्रत्येक एपीआई विधि के लिए स्निपेट काम कर रहे हैं। कृपया उन्हें एक बार देख ले पहले: https://developers.google.com/drive/v2/reference/files/insert

$file->setParents([{'id': parent_id}]) 
4

सेट इस तरह मूल फ़ोल्डर:

//Set the Parent Folder 
$parent = new Google_Service_Drive_ParentReference(); //previously Google_ParentReference 
$parent->setId('0B9mYBlahBlahBlah'); 
$file->setParents(array($parent)); 
+0

नई कक्षा को 'Google_Service_Drive_ParentReference' कहा जाता है – Moak

0

नीचे कोड का प्रयोग करें। यह Google ड्राइव में एक फ़ाइल डालने के लिए पूरी तरह से काम करता है।

<?php 
require_once 'Google/autoload.php'; 
require_once 'Google/Client.php'; 
require_once 'Google/Service/Drive.php'; 

$client = new Google_Client(); 
// Get your credentials from the console 
$client->setClientId('your client id'); 
$client->setClientSecret('your client secret'); 
$client->setRedirectUri('redirect uri set on google apps'); 
$client->setScopes(array('https://www.googleapis.com/auth/drive.file')); 

session_start(); 

if (isset($_GET['code']) || (isset($_SESSION['access_token']) && $_SESSION['access_token'])) { 

    if (isset($_GET['code'])) { 
     $client->authenticate($_GET['code']); 
     $_SESSION['access_token'] = $client->getAccessToken(); 
    } 
    else 
     $client->setAccessToken($_SESSION['access_token']); 

    $service = new Google_Service_Drive($client); 

    //Insert a file 
    $file = new Google_Service_Drive_DriveFile(); 
    $file->setTitle(uniqid().'.jpg'); 
    $file->setDescription('A test document'); 
    $file->setMimeType('image/jpeg'); 

    $data = file_get_contents('a.jpg'); 

    $createdFile = $service->files->insert($file, array(
     'data' => $data, 
     'mimeType' => 'image/jpeg', 
     'uploadType' => 'multipart' 
    )); 

    print_r($createdFile); 
} 
else { 
    $authUrl = $client->createAuthUrl(); 
    header('Location: ' . $authUrl); 
    exit(); 
} 
?> 
2

ऐसा लगता है कि कक्षा Google_Service_Drive_ParentReference() अब और काम नहीं कर रही है। हालांकि, निम्नलिखित कोड मेरे लिए काम करता है:

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

    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(); 

    } 
संबंधित मुद्दे