PHPackages                             lutsen/updrive - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. lutsen/updrive

ActiveProject[File &amp; Storage](/categories/file-storage)

lutsen/updrive
==============

Allow anyone to upload files to your Google Drive with a simple webform.

v0.5(9y ago)5374MITPHPPHP &gt;=5.5.0

Since Nov 23Pushed 9y ago1 watchersCompare

[ Source](https://github.com/lutsen/updrive)[ Packagist](https://packagist.org/packages/lutsen/updrive)[ RSS](/packages/lutsen-updrive/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (1)Dependencies (1)Versions (2)Used By (0)

UpDrive: Allow anyone to upload files to your Google Drive with a simple webform
================================================================================

[](#updrive-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.

Requirements
------------

[](#requirements)

- PHP 5.5 or newer
- [A Google API project](https://console.developers.google.com/apis/library)

Install UpDrive
---------------

[](#install-updrive)

Install UpDrive and its dependencies with [Composer](https://getcomposer.org/) 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.

#### How to create a Google API project

[](#how-to-create-a-google-api-project)

1. Go to the [Google API Console](https://console.developers.google.com/project/_/apiui/apis/library). Create a new one by selecting Create a new project.
2. 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.
3. In the Credentials tab, select the New credentials drop-down list, and choose OAuth client ID.
4. Under Application type, select Web application. In the Authorized Redirect URIs field, enter the URL of the *oauth2callback.php* page.
5. Press the Create button.
6. Download the client\_secret json file (the download button is on the right).
7. Rename this file to *client\_secret.json* and add it to the UpDrive root directory.

Use UpDrive
-----------

[](#use-updrive)

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.

#### Reconnect UpDrive

[](#reconnect-updrive)

To reconnect UpDrive to a Google account, delete the *credentials.json* file from your webserver and access UpDrive again. Now you can reconnect.

UpDrive project structure
-------------------------

[](#updrive-project-structure)

An overview of the directories of a UpDrive and their contents.

#### public (directory)

[](#public-directory)

Contains the *index.php* and *oauth2callback.php* file.

#### templates (directory)

[](#templates-directory)

This directory contains the template files for the setup and form html pages.

#### vendor (directory)

[](#vendor-directory)

Created by [Composer](https://getcomposer.org/) when installing the project dependencies.

#### config\_example.php (file)

[](#config_examplephp-file)

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.

#### init.php (file)

[](#initphp-file)

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](https://developers.google.com/drive/v3/web/about-auth).

UpDrive is a project of [Lútsen Stellingwerff](http://lutsen.land/) from [HoverKraft](http://www.hoverkraft.nl/), and started as a project for [Supersolid](http://www.supersolid.nl/).

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

3455d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/b6c10dcc69681553af94c4bf45b881426eca2f6cbfd41f334e19069b23389f70?d=identicon)[lutsen](/maintainers/lutsen)

---

Tags

google-drivephpwebformfileuploadsharegoogle-drivewebform

### Embed Badge

![Health badge](/badges/lutsen-updrive/health.svg)

```
[![Health](https://phpackages.com/badges/lutsen-updrive/health.svg)](https://phpackages.com/packages/lutsen-updrive)
```

###  Alternatives

[kartik-v/bootstrap-fileinput

An enhanced HTML 5 file input for Bootstrap 5.x, 4.x, and 3.x with features for file preview for many file types, multiple selection, ajax uploads, and more.

5.4k7.9M13](/packages/kartik-v-bootstrap-fileinput)[unisharp/laravel-filemanager

A file upload/editor intended for use with Laravel 5 to 10 and CKEditor / TinyMCE

2.2k3.3M74](/packages/unisharp-laravel-filemanager)[sonata-project/media-bundle

Symfony SonataMediaBundle

4625.5M71](/packages/sonata-project-media-bundle)[kartik-v/yii2-widget-fileinput

An enhanced FileInput widget for Bootstrap 3.x, 4.x &amp; 5.x with file preview, multiple selection, and more features (sub repo split from yii2-widgets)

2286.8M95](/packages/kartik-v-yii2-widget-fileinput)[servocoder/richfilemanager

RichFilemanager - highly customizable open-source file manager

90962.0k2](/packages/servocoder-richfilemanager)[fof/upload

The file upload extension for the Flarum forum with insane intelligence.

188171.7k15](/packages/fof-upload)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
