Laravel 5 dropbox api file upload example using league/flysystem-dropbox package

By Hardik Savani | May 20, 2016 | | 9662 Viewer | Category : Laravel Dropbox API


Share this post:



Dropbox is a file hosting service and operated by American company Dropbox. They provides cloud storage, file synchronization and personal cloud software. Dropbox is very popular for file synchronization and cloud storage in todays. We can store large file on dropbox and share with someone, as well as we can store database backup in dropbox. Most of the people choose dropbox for cloud storage.

In this post i am going to give you example of how to upload file in our dropbox account using league/flysystem-dropbox package. as well as we also get uploaded file share link and view link that way if we need to store it on database then we can store on db. This posts i give you simple example to store file in dropbox account using Dropbox Client API. You have to just follow few step and you can run example.

Step 1: Installation Package

In this step we have to install league/flysystem-dropbox package and that way we can use Dropbox Client API method so first run bellow command.

composer require league/flysystem-dropbox

Step 2: Token and Secret Configration

we need to require create app on dropbox website that way we can get token and secret so if you don't have account then you can create from here : Create App.

After create new app you can find token and secret. you have to copy that and add on .env file this way:

.env

DROPBOX_TOKEN=app_token

DROPBOX_SECRET=app_secret

Step 3: Create route and controller

In this step we need to create route and controller for simple example that way you can understand very well. So first create route this way.

app/Http/routes.php

Route::get('dropboxFileUpload', 'HomeController@dropboxFileUpload');

Ok, now your HomeController we have to add dropboxFileUpload() this way, in this example i have img folder on public folder and admin.png image inside on that folder, after run this example it will go on dropbox account:

app/Http/Controllers/HomeController.php

namespace App\Http\Controllers;


use App\Http\Requests;

use Illuminate\Http\Request;

use Dropbox\Client;

use Dropbox\WriteMode;


class HomeController extends Controller

{

/**

* Create a new controller instance.

*

* @return void

*/

public function __construct()

{

$this->middleware('auth');

}


public function dropboxFileUpload()

{

$Client = new Client(env('DROPBOX_TOKEN'), env('DROPBOX_SECRET'));


$file = fopen(public_path('img/admin.png'), 'rb');

$size = filesize(public_path('img/admin.png'));

$dropboxFileName = '/myphoto4.png';


$Client->uploadFile($dropboxFileName,WriteMode::add(),$file, $size);

$links['share'] = $Client->createShareableLink($dropboxFileName);

$links['view'] = $Client->createTemporaryDirectLink($dropboxFileName);


print_r($links);

}

}

Ok, now you can run example and see.....