Laravel Nova field to upload big size video using chunks.
Nova | Package |
---|---|
V1-3 | V1 |
V4 | V2-3 |
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"
\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' ),