andrewelkins / cabinet
Laravel 4 file upload package.
Installs: 1 326
Dependents: 0
Suggesters: 0
Security: 0
Stars: 101
Watchers: 8
Forks: 26
Open Issues: 6
Language:JavaScript
Requires
- php: >=5.3.0
- bllim/datatables: *
- illuminate/auth: 4.2.x
- illuminate/database: 4.2.x
- illuminate/filesystem: 4.2.x
- illuminate/log: 4.2.x
- illuminate/support: 4.2.x
- illuminate/view: 4.2.x
- intervention/image: 2.0.x
- nesbot/carbon: 1.*
- symfony/http-foundation: 2.5.*
- symfony/http-kernel: 2.5.*
Suggests
- zizaco/confide: add Easy User management to Laravel 4
- zizaco/entrust: add Role-based Permissions to Laravel 4
README
Cabinet is a file upload package for Laravel 4.
Cabinet is a package that allows easy upload of files and images.
Features
- File Upload
- Image Processing for display
- Configurable Image options
- Route, Controller, Model cli generators
- Configurable
Quick start
Required setup
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 update
In 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', ),
Upload model
Now generate the Cabinet migration:
$ php artisan cabinet:migration
It will generate the <timestamp>_cabinet_setup_uploads_table.php
migration. You may now run it with the artisan migrate command:
$ php artisan migrate
It 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.
Dump the default assessors
Least, you can dump a default controller and the default routes for Cabinet.
$ php artisan cabinet:controller $ php artisan cabinet:routes
Don't forget to dump composer autoload
$ composer dump-autoload
Publish public assets
In order to use the js/css/images you'll need to publish the assets.
$ php artisan asset:publish andrewelkins/cabinet
And 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.
Advanced
Using custom table / model name
To change the controller name when dumping the default controller template you can use the --name option.
$ php artisan cabinet:controller --name Uploader
Will result in UploaderController
Then, when dumping the routes, you should use the --controller option to match the existing controller.
$ php artisan confide:routes --controller Uploader
Using custom form for upload and other configuration options.
First, publish the config files:
$ php artisan config:publish andrewelkins/cabinet
Then 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!
RESTful controller
If you want to generate a RESTful controller you can use the additional --restful
or -r
option.
$ php artisan cabinet:controller --restful
Will 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 --restful
License
This is free software distributed under the terms of the MIT license
Special Thanks
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.
Additional information
Any questions, feel free to contact me.