Cabinet is a file upload package for Laravel 4.
Cabinet is a package that allows easy upload of files and images.
- File Upload
- Image Processing for display
- Configurable Image options
- Route, Controller, Model cli generators
- Configurable
In the require key of composer.json file add the following:
For use with Laravel 4.1.x
"andrewelkins/cabinet": "1.0.x"For use with Laravel 4.2.x
"andrewelkins/cabinet": "1.1.x"Run the Composer update command
$ composer updateIn your config/app.php add 'Andrew13\Cabinet\CabinetServiceProvider' to the end of the $providers array
'providers' => array(
'Illuminate\Foundation\Providers\ArtisanServiceProvider',
'Illuminate\Auth\AuthServiceProvider',
...
'Andrew13\Cabinet\CabinetServiceProvider',
),At the end of config/app.php add 'Cabinet' => 'Andrew13\Cabinet\CabinetFacade' to the $aliases array
'aliases' => array(
'App' => 'Illuminate\Support\Facades\App',
'Artisan' => 'Illuminate\Support\Facades\Artisan',
...
'Cabinet' => 'Andrew13\Cabinet\CabinetFacade',
),Now generate the Cabinet migration:
$ php artisan cabinet:migrationIt will generate the <timestamp>_cabinet_setup_uploads_table.php migration. You may now run it with the artisan migrate command:
$ php artisan migrateIt will setup a table containing filename, directory_path, extension, user_id and deleted_at fields, which are the default fields needed for Cabinet use.
Create an upload model in app/models/Upload.php:
<?php
use Andrew13\Cabinet\CabinetUpload;
class Upload extends CabinetUpload {
protected $softDelete = true;
}CabinetUpload class will take care of all the default upload behavior. This can be extended in your Upload model.
Least, you can dump a default controller and the default routes for Cabinet.
$ php artisan cabinet:controller
$ php artisan cabinet:routesDon't forget to dump composer autoload
$ composer dump-autoloadIn order to use the js/css/images you'll need to publish the assets.
$ php artisan asset:publish andrewelkins/cabinetAnd you are ready to go.
Access http://localhost/upload to upload a file. It is highly suggested to put some auth protection on the uploads.
To change the controller name when dumping the default controller template you can use the --name option.
$ php artisan cabinet:controller --name UploaderWill result in UploaderController
Then, when dumping the routes, you should use the --controller option to match the existing controller.
$ php artisan confide:routes --controller UploaderFirst, publish the config files:
$ php artisan config:publish andrewelkins/cabinetThen edit the view names in app/config/packages/andrewelkins/confide/config.php.
Further, you can change the location of the uploads, type of upload files, and many more options!
If you want to generate a RESTful controller you can use the additional --restful or -r option.
$ php artisan cabinet:controller --restfulWill result in a RESTful controller
Then, when dumping the routes, you should use the --restful option to match the existing controller.
$ php artisan cabinet:routes --restfulThis is free software distributed under the terms of the MIT license
Generator code uses code from the Confide package. It is then modified to fit this application. Thanks goes out to @Zizaco for that code.
Workbench tutorial by Jason Lewis was excellent in getting up and running with workbench.
Image upload tutorial from Phil Sturgeon which inspired me to create this package.
Any questions, feel free to contact me.
