Laravel Dropbox api File Upload example using league/flysystem-dropbox

About Us:

We are from free coder. We are a group of web developers who are passionate about web development. You can learn from us php, laravel, node js, vue js, react js and many other topic on web developement.
we are very happy to help you.
free coder

Today what you are going to learn:

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 lesson 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 lesson to store file in dropbox account using Dropbox Client API. You have to just follow few step and you can run lesson.

Lesson 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

Lesson 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

Lesson 3: Create route and controller

In this step we need to create route and controller for simple lesson 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 lesson i have img folder on public folder and admin.png image inside on that folder, after run this lesson 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 lesson and see.....