12MBを超えるファイルをアップロードすると、livewireのupload-fileが422 Unprocessable Contentでエラーになった。
原因
livewireの一時ファイルの処理ルールのデフォルトが上限12MBとなっているため。
PHPのupload_max_filesizeなどに問題は無かったせいで、PHPのファイルアップロード周りに落とし穴でもあるかと疑ってしまった。ごめんPHP。
config/livewire.php
(略)
'temporary_file_upload' => [
(略)
'rules' => null, // Example: ['file', 'mimes:png,jpg'] | Default: ['required', 'file', 'max:12288'] (12MB)
参考)https://stackoverflow.com/questions/65580792/livewire-image-upload-422-unprocessed-entity-error
対処
参考元ではコードで書き換えているが、素直に(単純に)設定ファイルで設定するようにした。
$ php artisan vendor:publish
... いろいろ表示されるが、livewire:configを選択すると
config/livewire.php が生成される。
生成されたconfig/livewire.phpの該当箇所を変更。
config/livewire.php
(略)
'temporary_file_upload' => [
(略)
- 'rules' => null, // Example: ['file', 'mimes:png,jpg'] | Default: ['required', 'file', 'max:12288'] (12MB)
+ 'rules' => ['required', 'file', 'max:30720'],