think.studio / nova-chunked-video
Laravel Nova field to upload big size video using chunks.
3.0.3
2023-07-16 15:52 UTC
Requires
- php: >=8.1
- laravel/framework: ^9.0|^10.0
- laravel/nova: ^4.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.16
- orchestra/testbench: ^8.5
- phpunit/phpunit: ^10.1
- psalm/plugin-laravel: ^2.8
- vimeo/psalm: ^5.11
README
Laravel Nova field to upload big size video using chunks.
Versions targeting
Installation
You can install the package via composer:
composer require think.studio/nova-chunked-video # optional publish configs php artisan vendor:publish --provider="NovaChunkedVideo\FieldServiceProvider" --tag="config"
Usage
\NovaChunkedVideo\ChunkedVideo::make( 'Video', 'big_video' ) ->acceptedTypes( 'video/mp4' ) ->disk( 'my_private_disk' ) ->store( function ( $filePath, $disk, $model, $attribute, $request ) { // something like delete old video and save new $model->big_video = $filePath; $model->save(); // WARNING: response should return url. return Storage::disk($disk)->url($filePath); } ) ->preview( function ($value, $disk, $model ) { return Storage::disk($disk)->url($value); } ) ->download(function (NovaRequest $request, Model $model, ?string $disk, $value) { return $value ? Storage::disk($disk)->download($value) : null; }) ->delete(function (NovaRequest $request, $model, ?string $disk, $value) { if ($value) { Storage::disk($disk)->delete($value); } return true; }) ->help( 'Usually a large video: 0.5-2GB. Max size 3GB' ),