Instantly share code, notes, and snippets.

What would you like to do?
Upload a PDF file to Google Drive
require 'google-api/apiClient.php';
require 'google-api/contrib/apiOauth2Service.php';
require 'google-api/contrib/apiDriveService.php';
$pdfFile = 'test.pdf';
// API Console:
// Create an API project ("web applications") and put the client id and client secret in config.ini.
// Set up the Drive SDK in the API console.
// Create a Chrome extension, set the "container" and "api_console_project_id" parameters, and install it.
$config = parse_ini_file('config.ini'); // client_id, client_secret
// initialise the client
$client = new apiClient();
// initialise the Google Drive service
$service = new apiDriveService($client);
// create and upload a new Google Drive file, including the data
try {
$file = new DriveFile;
$result = $service->files->insert($file, array('data' => file_get_contents($pdfFile), 'mimeType' => 'application/pdf'));
catch (Exception $e) {
print $e->getMessage();
function authenticate($client, $file = 'token.json'){
if (file_exists($file)) return file_get_contents($file);
$_GET['code'] = ''; // insert the verification code here
// print the authentication URL
if (!$_GET['code']) {
exit($client->createAuthUrl(array('')) . "\n");
file_put_contents($file, $client->authenticate());
exit('Authentication saved to token.json - now run this script again.');

This comment has been minimized.

arun7379 commented Nov 25, 2015

Hi, I really appreciate your efforts for providing this code snippet,but can you please also send the download link to the complete api?


This comment has been minimized.

anatolinicolae commented Dec 14, 2015


This comment has been minimized.

joshiket commented Feb 6, 2016

I am getting Undefined index: uploadType in Google\Service\Resource.php on line 221 exception, when I call the $service->files->insert() method, I have passed all the parameters as shown in the above code.
earlier I was using $service->files->insert($file, array('data' => $data, 'mimeType' => 'image/jpeg'));
changed it to $service->files->insert($file, array('data' => $data, 'mimeType' => 'image/jpeg','uploadType' => 'media'));


This comment has been minimized.

shivanraptor commented Mar 7, 2016

@joshiket To solve the warning, you should specify uploadType along with mimeType.
p.s. this piece of code is for V2; please migrate to V3.


This comment has been minimized.

bikeshtricon commented Jun 10, 2016

can you please update the topic


This comment has been minimized.

abhiagrawal87 commented Aug 2, 2016

Hi, I need to setup Google Drive API for one of my project and following the documentation leads me nowhere. The API which I am getting do not have files which are included in the code. Can anyone guide me with the code and API as I am new to APIs.

I need to create a system wherein public users will submit their assignments by uploading Word/PDF files which will be transferred to common Google Drive of teacher and link of each uploaded file will be generated.

Please suggest. Thanks.


This comment has been minimized.

TLMcode commented May 17, 2018

Now if only I could find this for php not wrapped in the google-api-php-client


This comment has been minimized.

lightingCombat710 commented Aug 27, 2018

require 'google-api/apiClient.php';
require 'google-api/contrib/apiOauth2Service.php';
require 'google-api/contrib/apiDriveService.php';

Where i can purchase php files?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment