Allow anyone to upload files to your Google Drive with a simple webform.
With a simple webform, hosted on your own webserver, anyone you want can upload files to your Google Drive, in folders you specify. UpDrive is a project written in PHP. It uses the Google API client PHP SDK.
- PHP 5.5 or newer
- A Google API project
Install UpDrive and its dependencies with Composer with this command:
$ php composer.phar create-project lutsen/updrive [project-name] 0.5
(Replace [project-name] with the desired directory name for your new project)
Rename config_example.php to config.php and add:
- your server paths
- the names of the folders people can upload to
Create a Google API project web application
Download the json client secret file from you Google API project, rename it to client_secret.json and add it to the UpDrive root directory.
- Go to the Google API Console. Create a new one by selecting Create a new project.
- In the sidebar under "API Manager", select Credentials, then select the OAuth consent screen tab. Choose an Email Address, specify a Product Name, and press Save.
- In the Credentials tab, select the New credentials drop-down list, and choose OAuth client ID.
- Under Application type, select Web application. In the Authorized Redirect URIs field, enter the URL of the oauth2callback.php page.
- Press the Create button.
- Download the client_secret json file (the download button is on the right).
- Rename this file to client_secret.json and add it to the UpDrive root directory.
The first time you access UpDrive, you have to connect to the Google account of the Google Drive you want to use. After authorising the UpDrive web application, the OAuth credentials are saved in the credentials.json file. Now people can use the webform to upload files to your Google Drive.
To reconnect UpDrive to a Google account, delete the credentials.json file from your webserver and access UpDrive again. Now you can reconnect.
An overview of the directories of a UpDrive and their contents.
Contains the index.php and oauth2callback.php file.
This directory contains the template files for the setup and form html pages.
Created by Composer when installing the project dependencies.
This is an example of the config.php file. The config.php file is needed for UpDrive to work. Rename the config_example.php to config.php and add the necessary details.
This file includes the config.php and vendor/autoload.php file.
It also sets up the Google_Client object.
The access scope to the Google Drive is defined here to. The UpDrive default is full access. You can find all available access scopes here.