Skip to content

Latest commit

History

82 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

#Media

This package saves uploaded files and links them with models

Installation

Laravel 5

NOTE: If upgrading from 2.0.0, run php artisan vendor:publish and php artisan migrate

Using Composer, edit your composer.json file to require devfactory/media.

"require": {
"devfactory/media": "2.0.*"
}

Then from the terminal run

composer update

Then in your app/config/app.php file register the service providers:

'Devfactory\Media\MediaServiceProvider',
'That0n3guy\Transliteration\TransliterationServiceProvider',

From within the laravel folder of your project, run:

php artisan vendor:publish

Followed by:

php artisan migrate

Laravel 4

Using Composer, edit your composer.json file to require devfactory/media.

"require": {
"devfactory/media": "1.0.*"
}

Then from the terminal run

composer update

Then in your app/config/app.php file register the service providers:

'Devfactory\Media\MediaServiceProvider',
'That0n3guy\Transliteration\TransliterationServiceProvider',

Run the migration to create the DB table:

php artisan migrate --package=devfactory/media

Finally, publish the config to make changes to where and how the files are stored:

php artisan config:publish devfactory/media

Usage

To use the package, you need to add the following to any of your models which will be receiving media uploads.

<?phpclass User extends Eloquent {
use \Devfactory\Media\MediaTrait;
);

Then to save a media, in the method that handles your form submission you just need to pass the File object to saveMedia():

publicfunctionupload() {
$user = User::firstOrCreate(['id' => 1]);
if (Input::hasFile('image')) {
$user->saveMedia(Input::file('image'));
}
return Redirect::route('route');
}

This will create the file on the file system and insert an entry into the DB table media.

If you need to set multiple different types of images on a Model, like the users' profile picture and a background for their page you can use the second parameter:

$user->saveMedia(Input::file('profile_picture'), 'profile_picture');
$user->saveMedia(Input::file('background_image'), 'background_image');

To retrieve the images again, you just need to call getMedia():

// Retrieves every Media linked with the user$all_media = $user->getMedia();
// Retrieve a specific Media$profile_picture = $user->getMedia('profile_picture');

Finally you can delete media with deleteMedia():

// Delete all media for a user$user->deleteMedia();
// Delete specific media$user->deleteMedia('profile_picture');

About

Laravel 4/5 package that saves uploaded files and links them with the associated model

Resources

Stars

17 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages