laravel-system-file, Packagist
To install package, you need run command:
composer require akbsit/laravel-system-file
Next install migrations:
php artisan migrate
To connect package to the model, you need to add a trait InteractsMedia
:
use Akbsit\SystemFile\Traits\InteractsMedia;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
use InteractsMedia;
}
- Upload image:
User::first()
->addMedia('<file_url>')
->setFileName('user1')
->put();
- Attach one file to the model (the old one will be overwritten when re-uploading):
User::first()
->addMedia('<file_url>')
->setFileName('user1')
->single()
->put();
- Get first image:
$oSystemFile = User::first()->getMediaFirst();
- Get images list:
$oSystemFileList = User::first()->getMedia();
media
- list of files attached to the model;addMedia($file)
- attach file to the model:$file
- object/link of the uploaded file.
mediaExists(string $sCollection)
- check for attached files (by defaultdefault
);getMedia(string $sCollection)
- list of collection files (by defaultdefault
);getMediaFirst(string $sCollection)
- first element of the collection (by defaultdefault
).
getUrl()
- absolute file path;getPath()
- path to the file;getWidthAndHeight()
- get file sizes (for images);getWidth()
- get width (for images);getHeight()
- get height (for pictures);fileExists()
- check for the presence of the file physically.
setFile($file)
- set object/link to a file;setModel(Model $oModel)
- set model;enablePartition()
- enable folder generation (example:73c/d53/dce
);single()
- add one file to the model (all others are deleted if they were previously attached);setOriginFileName(string $sOriginFileName)
- set origin file name;setFileName(string $sFileName)
- set file name;setProperties(array $arProperties)
- set file properties;toDisk(string $sDisk)
- set storage disk (by defaultpublic
);toCollection(string $sCollection)
- set collection (by defaultdefault
);toDir(string $sDir)
- set storage folder (by defaultdefault
);put()
- save file.
php artisan system-file:sync