Angka 413 datang dari server web, bukan dari kode Anda. Permintaannya diputus sebelum sampai ke PHP; itu sebabnya tidak ada apa pun di log aplikasi, dan itu sebabnya menaikkan upload_max_filesize saja tidak mengubah apa-apa.
Nginx
# in http, server or location
client_max_body_size 64M;
sudo nginx -t && sudo systemctl reload nginx
Nilai bawaannya 1M. Itulah batas yang pertama ditabrak hampir semua orang.
PHP, dan kedua nilainya
; 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 harus LEBIH BESAR daripada upload_max_filesize, sebab permintaannya membawa berkas ditambah sisa formulirnya. Samakan keduanya, dan berkas yang persis sebesar batas itu akan gagal tanpa satu pun pesan yang berguna.
Apache dan LiteSpeed
# .htaccess
LimitRequestBody 67108864
php_value upload_max_filesize 64M
php_value post_max_size 68M
Lalu pastikan apa yang sebenarnya dimuat
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');
Baris perintah dan server web membaca berkas ini yang berbeda. Perubahan yang muncul di php -i tetapi tidak di peramban berarti Anda menyunting berkas yang keliru — periksa juga direktori kumpulan PHP-FPM.
Muat ulang setiap kali ada perubahan
sudo systemctl reload php8.3-fpm nginx
Di hosting EGPHP batas-batas ini ditetapkan per paket dan bisa dinaikkan dari panel. Lihat juga Batas unggah yang mengabaikan php.ini Anda.