Package Data | |
---|---|
Maintainer Username: | devfactory |
Maintainer Contact: | developer@devfactory.ch (DevFactory Sarl) |
Package Create Date: | 2014-11-11 |
Package Last Update: | 2024-03-18 |
Home Page: | |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-11-15 15:16:02 |
Package Statistics | |
---|---|
Total Downloads: | 11,562 |
Monthly Downloads: | 24 |
Daily Downloads: | 1 |
Total Stars: | 17 |
Total Watchers: | 7 |
Total Forks: | 5 |
Total Open Issues: | 2 |
#Media
This package saves uploaded files and links them with models
NOTE: If upgrading from 2.0.0, run
php artisan vendor:publish
andphp 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 the laravel folder of your project, run:
php artisan vendor:publish
Followed by:
php artisan migrate
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
To use the package, you need to add the following to any of your models which will be receiving media uploads.
<?php
class 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()
:
public function upload() {
$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');