@props([ 'name', 'label', 'value' => null, 'required' => false, 'help' => null, 'accept' => '*/*', 'maxSize' => 10240, // KB ]) @php $safeValue = is_string($value) ? $value : (is_array($value) ? (isset($value[0]) && is_string($value[0]) ? $value[0] : '') : (string)($value ?? '')); $fileUrl = !empty($safeValue) ? asset($safeValue) : null; $fileName = !empty($safeValue) ? basename($safeValue) : null; @endphp
{{-- Current File Display --}} @if($fileUrl)
@php $extension = pathinfo($safeValue, PATHINFO_EXTENSION); $isImage = in_array(strtolower($extension), ['jpg', 'jpeg', 'png', 'gif', 'webp', 'svg']); $isVideo = in_array(strtolower($extension), ['mp4', 'avi', 'mov', 'wmv', 'flv']); $isPdf = strtolower($extension) === 'pdf'; @endphp @if($isImage) Preview @elseif($isVideo) @elseif($isPdf) @else @endif
{{ $fileName }}
@if(file_exists(public_path($safeValue))) {{ number_format(filesize(public_path($safeValue)) / 1024, 2) }} KB @endif
View
@endif {{-- Upload Progress Bar --}}
@error($name)
{{ $message }}
@enderror @if($help && !$errors->has($name))
{{ $help }} @if($maxSize)
Max file size: {{ number_format($maxSize / 1024, 2) }} MB @endif
@endif {{-- Hidden input for removal --}}
@push('scripts') @endpush