PHP code example of itstructure / laravel-media-file-uploader
1. Go to this page and download the library: Download itstructure/laravel-media-file-uploader library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
itstructure / laravel-media-file-uploader example snippets
'default' => env('FILESYSTEM_DISK', 'local'),
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app/uploads'),
'throw' => false,
'url' => env('APP_URL') . '/storage/',
],
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => env('AWS_BUCKET'),
'url' => env('AWS_URL'),
'endpoint' => env('AWS_ENDPOINT'),
'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false),
'throw' => false,
'visibility' => 'public',
],
],
'links' => [
public_path('storage') => storage_path('app/uploads'),
],
'plugins' => [
'Uploader' => [
'active' => true,
'files' => [
[
'type' => 'css',
'asset' => true,
'location' => '/vendor/uploader/css/modal.css',
],
[
'type' => 'css',
'asset' => true,
'location' => '/vendor/uploader/css/file-area.css',
],
[
'type' => 'js',
'asset' => true,
'location' => '/vendor/uploader/js/file-setter.js',
],
],
],
]
'routing' => [
'middlewares' => ['auth'],
],
'albums' => [
'layout' => 'adminlte::page', // In case if you use AdminLTE. Or you can set your special layout.
],
route('uploader_file_edit_manager', ['id' => 1])
<a href="{{ $mediaFile->getOriginalUrl() }}" target="_blank">
{!! \Itstructure\MFU\Facades\Previewer::getPreviewHtml($mediaFile, \Itstructure\MFU\Services\Previewer::LOCATION_FILE_INFO) !!}
</a>
route('uploader_file_download', ['id' => 1])
'albums' => [
'layout' => 'adminlte::page',
],
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Itstructure\MFU\Interfaces\BeingOwnerInterface;
use Itstructure\MFU\Behaviors\Owner\{BehaviorMediafile, BehaviorAlbum};
use Itstructure\MFU\Processors\SaveProcessor;
use Itstructure\MFU\Models\Albums\AlbumTyped;
use Itstructure\MFU\Traits\{OwnerBehavior, Thumbnailable};
class Product extends Model implements BeingOwnerInterface
{
use Thumbnailable, OwnerBehavior;
protected $table = 'products';
protected $fillable = ['title', 'alias', 'description', 'price', 'category_id'];
public function getItsName(): string
{
return $this->getTable();
}
public function getPrimaryKey()
{
return $this->getKey();
}
public static function getBehaviorMadiafileAttributes(): array
{
return [SaveProcessor::FILE_TYPE_THUMB, SaveProcessor::FILE_TYPE_IMAGE];
}
public static function getBehaviorAlbumAttributes(): array
{
return [AlbumTyped::ALBUM_TYPE_IMAGE];
}
public static function getBehaviorAttributes(): array
{
return array_merge(static::getBehaviorMadiafileAttributes(), static::getBehaviorAlbumAttributes());
}
protected static function booted(): void
{
$behaviorMediafile = BehaviorMediafile::getInstance(static::getBehaviorMadiafileAttributes());
$behaviorAlbum = BehaviorAlbum::getInstance(static::getBehaviorAlbumAttributes());
static::saved(function (Model $ownerModel) use ($behaviorMediafile, $behaviorAlbum) {
if ($ownerModel->wasRecentlyCreated) {
$behaviorMediafile->link($ownerModel);
$behaviorAlbum->link($ownerModel);
} else {
$behaviorMediafile->refresh($ownerModel);
$behaviorAlbum->refresh($ownerModel);
}
});
static::deleted(function (Model $ownerModel) use ($behaviorMediafile, $behaviorAlbum) {
$behaviorMediafile->clear($ownerModel);
$behaviorAlbum->clear($ownerModel);
});
}
}
blade
@php
$thumbModel = isset($model) ? $model->getThumbnailModel() : null;
@endphp
<div id="{{ isset($model) ? 'thumbnail_container_' . $model->id : 'thumbnail_container' }}">
@if(!empty($thumbModel))
<a href="{{ $thumbModel->getOriginalUrl() }}" target="_blank">
{!! \Itstructure\MFU\Facades\Previewer::getPreviewHtml($thumbModel, \Itstructure\MFU\Services\Previewer::LOCATION_FILE_INFO) !!}
</a>
@endif
</div>
<div id="{{ isset($model) ? 'thumbnail_title_' . $model->id : 'thumbnail_title' }}">
@if(!empty($thumbModel))
{{ $thumbModel->title }}
@endif
</div>
<div id="{{ isset($model) ? 'thumbnail_description_' . $model->id : 'thumbnail_description' }}">
@if(!empty($thumbModel))
{{ $thumbModel->description }}
@endif
</div>
@php
$fileSetterConfig = [
'attribute' => Itstructure\MFU\Processors\SaveProcessor::FILE_TYPE_THUMB,
'value' => !empty($thumbModel) ? $thumbModel->id : null,
'openButtonName' => trans('uploader::main.set_thumbnail'),
'clearButtonName' => trans('uploader::main.clear'),
'mediafileContainerId' => isset($model) ? 'thumbnail_container_' . $model->id : 'thumbnail_container',
'titleContainerId' => isset($model) ? 'thumbnail_title_' . $model->id : 'thumbnail_title',
'descriptionContainerId' => isset($model) ? 'thumbnail_description_' . $model->id : 'thumbnail_description',
//'callbackBeforeInsert' => 'function (e, v) {console.log(e, v);}',//Custom
'neededFileType' => Itstructure\MFU\Processors\SaveProcessor::FILE_TYPE_THUMB,
'subDir' => isset($model) ? $model->getTable() : null
];
$ownerConfig = isset($ownerParams) && is_array($ownerParams) ? array_merge([
'ownerAttribute' => Itstructure\MFU\Processors\SaveProcessor::FILE_TYPE_THUMB
], $ownerParams) : [];
$fileSetterConfig = array_merge($fileSetterConfig, $ownerConfig);
@endphp
@fileSetter($fileSetterConfig)