This is a simple Laravel service provider for Uploadcare's official PHP library. It is a fork from altitude/laravel-uploadcare and the pull request from dimaninc to make it compatible with Laravel 5. This package is now maintained by me.
- install package by composer:
composer require inwave/laravel-uploadcare
This package will auto discover itself, therefore there is no need to add files to the app.php. Further more it will also autodiscover it's dependencies.
- Publish the config file:
php artisan vendor:publish
- Add the required config variables in the .env file:
UPLOADCARE_PUBLIC_KEY=
UPLOADCARE_PRIVATE_KEY=
First, add this to your composer.json
file
"require": {
"laravelcollective/html": "5.1.*",
"inwave/laravel-uploadcare": "~1.3"
}
Then, create config/uploadcare.php
with the following
<?php
return array(
'public_key' => 'YOUR_UPLO ADCARE_PUBLIC_KEY_HERE',
'private_key' => 'YOUR_UPLOADCARE_PRIVATE_KEY_HERE',
);
Best practice would be to put the keys in your .ENV file.
Finally, add the service provider and alias in your config/app.php
'providers' => array(
...
Illuminate\Html\HtmlServiceProvider::class,
Inwave\LaravelUploadcare\LaravelUploadcareServiceProvider::class,
);
'aliases' => array(
...
'Form' => Illuminate\Html\FormFacade::class,
'HTML' => Illuminate\Html\HtmlFacade::class,
'Uploadcare' => Inwave\LaravelUploadcare\Facades\Uploadcare::class,
);
And you should be good to go.
This Service extends Uploadcare's API class so you can use any of its methods.
It also provides the form macro Form::uploadcare($field_name, $value = null, $options = array())
.
app/Http/routes.php
Route::get('/demo', function(){
return View::make('demo/demo');
});
Route::post('/demo', function(){
echo Uploadcare::getFile(Input::get('image'))->getUrl();
});
resources/views/demo/demo.blade.php
<html>
<head>
<title>Uploadcare Demo</title>
</head>
<body>
<form method="POST" action="/demo">
{!! Form::uploadcare('image', null, array('data-crop' => '3:4')) !!}
<input type="submit">
</form>
{!! Uploadcare::scriptTag() !!}
</body>
</html>
For more information, please check the offical documentation