413 kommt vom Webserver, nicht von Ihrem Code. Die Anfrage wurde abgeschnitten, bevor PHP erreicht war — deshalb steht nichts im Anwendungs-Log, und deshalb ändert es nichts, allein upload_max_filesize zu erhöhen.

Nginx

# in http, server or location
client_max_body_size 64M;

sudo nginx -t && sudo systemctl reload nginx

Der Standardwert ist 1M. An diese Grenze stoßen fast alle zuerst.

PHP, und zwar beide Werte

; php.ini
upload_max_filesize = 64M
post_max_size = 68M       ; must exceed upload_max_filesize
memory_limit = 128M
max_execution_time = 300
post_max_size muss GRÖSSER sein als upload_max_filesize, denn die Anfrage trägt die Datei plus den Rest des Formulars. Setzen Sie beide gleich, scheitert eine Datei genau an der Grenze — ganz ohne brauchbare Meldung.

Apache und LiteSpeed

# .htaccess
LimitRequestBody 67108864
php_value upload_max_filesize 64M
php_value post_max_size 68M

Prüfen Sie dann, was wirklich geladen ist

php -i | grep -E 'upload_max_filesize|post_max_size'   # the CLI, which may differ
# and from the web, in a temporary file:
# <?php echo ini_get('upload_max_filesize');
CLI und Webserver lesen verschiedene ini-Dateien. Eine Änderung, die in php -i erscheint und im Browser nicht, heißt: Sie haben die falsche bearbeitet — sehen Sie auch im PHP-FPM-Pool-Verzeichnis nach.

Nach jeder Änderung neu laden

sudo systemctl reload php8.3-fpm nginx
Beim EGPHP-Hosting sind diese Grenzen je Tarif gesetzt und lassen sich im Panel erhöhen. Siehe auch Ein Upload-Limit, das Ihre php.ini ignoriert.