wielski / laravel-storager
Laravel Storager
dev-master
2015-12-26 05:00 UTC
Requires
- php: >=5.5.0
- ext-gd: *
- illuminate/support: >=5.0.0
- league/flysystem: >=1.0
- symfony/http-foundation: >=2.0
This package is not auto-updated.
Last update: 2024-11-13 21:07:57 UTC
README
Features
- Handle files with Laravel Storage.
- Load files through Laravel routing instead of public path.
- Save images with thumbs, sizes are customisable.
Installation
-
Install File API
composer require wielski/laravel-fileapi
-
Set service provider in
config/app.php
Wielski\FileApi\FileApiServiceProvider::class,
-
publish config file
php artisan vendor:publish --tag=fileapi_config
Config
in config/fileapi.php
-
fill in the storage path, which make routes for you.
'path' => ['/images/event/', '/images/article/'],
it will generate routes like below :
Route::get('/images/event/{filename}', function ($filename) { $entry = new \Wielski\FileApi\FileApi('/images/event/'); return $entry->getResponse($filename); }); Route::get('/images/article/{filename}', function ($filename) { $entry = new \Wielski\FileApi\FileApi('/images/article/'); return $entry->getResponse($filename); });
-
set default thumb sizes(by key and value)
'default_thumbs' => ['S' => '96x96', 'M' => '256x256', 'L' => '480x480'],
Usage
Initialize File API
use \Wielski\FileApi\FileApi; $fa = new FileApi(); # use default path (as '/images/') $fa_event = new FileApi('/images/event/'); # initialize it by giving a base path $fa_article = new FileApi('/images/article/'); # initiate another instance
Save By Giving Uploaded File
-
Default Usage : get unique filename
$file = $fa->save(\Input::file('main_image')); // => wfj412.jpg
-
Custimize your upload file name
$file = $fa->save(\Input::file('main_image'), 'custom-file-name'); // => custom-file-name.jpg
-
By default will set three thumbs(equal scaling)
Thumbnail functions
-
Set custom thumb sizes
$file = $fa ->thumbs([ 'S' => '150x100', 'M' => '300x200', 'L' => '450x300' ]) ->save(\Input::file('main_image'));
-
make cropped thumbs
$file = $fa->crop()->save(\Input::file('main_image'));
Get image url
$fa->get('wfj412.jpg'); // => get image url of 'L' size $fa->get('wfj412.jpg', 'M'); // => get image url of 'M' size $fa->get('wfj412.jpg', 'full); // => get image url of full size
Delete image and thumbs
$fa->drop('wfj412.jpg');
Get file fullpath (abstract path from Laravel Storage)
$fa->getPath('wfj412.jpg'); // => '/images/event/wfj412.jpg'
Parse File Path to URL
if you store your file into cloud storage and you want to get url cloud site, you can use url() method to get it
echo $fa->getUrl('wfjsdf.jpg'); // => "https://s3-ap-northeast-1.amazonaws.com/xxx/xxx/55c1e027caa62L.png"
Work with Blade
In your app.php add alias for FileApi class
'FileApi' => Wielski\FileApi\FileApi::class,
Using in Blade:
{{ FileApi::getFile('/images/avatars/', 'image.jpg', 'S') ?: 'default.jpg' }}
Work with Laravel Storage
-
Get file content
\Storage::get($fa->getPath('wfj412.jpg'));
-
Write files
\Storage::put($fa->getPath('wfj412.jpg'));
-
Get Mime Type
\Storage::mimeType($fa->getPath('wfj412.jpg'));