<?php
namespace App\Filament\Widgets;
use Filament\Forms\Components\FileUpload;
use Filament\Schemas\Concerns\InteractsWithSchemas;
use Filament\Schemas\Contracts\HasSchemas;
use Filament\Widgets\Widget;
use Filament\Schemas\Schema;
use Filament\Notifications\Notification;
class UploadTournamentFileWidget extends Widget implements HasSchemas
{
use InteractsWithSchemas;
protected array $acceptedTypes = ['application/xml', 'text/xml'];
public ?array $data = [];
protected string $view = 'filament.widgets.upload-tournament-file-widget';
public function mount(): void {
$this->form->fill();
}
public function form(Schema $schema): Schema {
return $schema->components([
FileUpload::make('kts')
->id('kts')
->label('Tournament File')
->directory('kts')
->moveFiles()
->acceptedFileTypes($this->acceptedTypes)
])->statePath('data');
}
public function save(): void {
$state = $this->form->getState();
$this->form->fill();
Notification::make()
->title('Uploaded successfully<br><br><strong>File</strong>: '.$state['kts'])
->success()
->send();
}
}
<?php
namespace App\Filament\Widgets;
use Filament\Forms\Components\FileUpload;
use Filament\Schemas\Concerns\InteractsWithSchemas;
use Filament\Schemas\Contracts\HasSchemas;
use Filament\Widgets\Widget;
use Filament\Schemas\Schema;
use Filament\Notifications\Notification;
class UploadTournamentFileWidget extends Widget implements HasSchemas
{
use InteractsWithSchemas;
protected array $acceptedTypes = ['application/xml', 'text/xml'];
public ?array $data = [];
protected string $view = 'filament.widgets.upload-tournament-file-widget';
public function mount(): void {
$this->form->fill();
}
public function form(Schema $schema): Schema {
return $schema->components([
FileUpload::make('kts')
->id('kts')
->label('Tournament File')
->directory('kts')
->moveFiles()
->acceptedFileTypes($this->acceptedTypes)
])->statePath('data');
}
public function save(): void {
$state = $this->form->getState();
$this->form->fill();
Notification::make()
->title('Uploaded successfully<br><br><strong>File</strong>: '.$state['kts'])
->success()
->send();
}
}