Awarie

„Plik jest za duży, żeby go wgrać” — jak podnieść limit

WordPress odmawia przyjęcia pliku, bo serwer ma limit uploadu — często 2 MB. Gdzie go zmienić, czemu zmiana czasem nie działa i kiedy plik wgrać inaczej.

Komunikat o przekroczonym limicie wgrywania pliku

„Plik przekracza maksymalny rozmiar dozwolony w tej witrynie” — po angielsku exceeds the maximum upload size for this site. WordPress nie ma nic przeciwko Twojemu plikowi; to serwer ustawił limit wgrywania, a na wielu hostingach domyślnie wynosi on absurdalnie mało — 2 albo 8 MB.

Aktualny limit podejrzysz w Media → Dodaj nowy — jest wypisany drobnym drukiem pod polem wgrywania.

Trzy ustawienia, które muszą się zgadzać

Limit uploadu to w rzeczywistości trzy wartości PHP i liczy się najniższa z nich:

  • upload_max_filesize — maksymalny rozmiar jednego pliku,
  • post_max_size — maksymalny rozmiar całego żądania; musi być równy lub większy niż poprzedni,
  • memory_limitlimit pamięci, który przy przetwarzaniu dużych obrazków też potrafi być wąskim gardłem.

Klasyczna pułapka: ktoś podnosi upload_max_filesize do 64 MB, zostawia post_max_size na 8 MB i limit dalej wynosi 8.

Gdzie zmienić limit

Panel hostingu — zacznij tutaj. Prawie każdy polski hosting ma w panelu sekcję ustawień PHP, gdzie upload_max_filesize i post_max_size zmienia się z listy rozwijanej. Zmiana działa w minutę i przeżyje każdą aktualizację strony.

Plik .user.ini albo php.ini w katalogu głównym strony, jeśli panel nie daje takiej opcji:

upload_max_filesize = 64M
post_max_size = 64M

Po zapisaniu odczekaj kilka minut — serwery czytają ten plik z opóźnieniem.

.htaccess — tylko na serwerach, gdzie PHP działa jako moduł Apache (dziś rzadkość). Linie php_value upload_max_filesize 64M na typowym hostingu z PHP-FPM spowodują błąd 500, więc jeśli po edycji .htaccess strona padła, natychmiast cofnij zmianę.

Jeśli żadna z dróg nie działa, limit jest narzucony globalnie przez hosting — napisz do nich albo potraktuj to jako jeden z sygnałów, że hosting Cię wyrósł.

Gdy limit jest w porządku, a upload i tak pada

Błąd 413 (Request Entity Too Large) — limit ustawiony nie w PHP, tylko na serwerze WWW albo w Cloudflare (darmowy plan: 100 MB). Tego nie zmienisz w WordPressie.

„HTTP error” w połowie wgrywania obrazka — zwykle brakuje pamięci albo czasu na przeskalowanie dużego zdjęcia. Zmniejsz zdjęcie przed wgraniem — fotografia z telefonu ma często 8000 pikseli szerokości, a strona i tak wyświetli maksymalnie 1200–2000.

Błąd 403 przy konkretnym pliku — reguła bezpieczeństwa ModSecurity na serwerze uznała plik za podejrzany. To załatwia się zgłoszeniem do hostingu, nie limitem.

Zanim podniesiesz limit do 512 MB — po co Ci taki plik na stronie?

Limit uploadu jest niski nie ze złośliwości: chroni serwer przed zapchaniem. Zanim go podniesiesz, sprawdź, czy w ogóle tędy droga:

  • Filmy nie powinny leżeć na hostingu. Wrzuć na YouTube albo Vimeo i osadź na stronie — hosting współdzielony nie jest zbudowany do streamingu i film będzie się zacinał,
  • duże paczki (motyw, wtyczka, backup) wgraj przez FTP zamiast przez przeglądarkę — bez żadnych limitów PHP,
  • ciężkie zdjęcia kompresuj przed wgraniem; nadwaga obrazków to najczęstszy powód wolnej strony.

Ile to zajmuje

Zmiana limitu w panelu hostingu — 5 minut. Diagnoza, czemu zmiana nie działa (który z trzech limitów blokuje, czy to nie 413 z proxy) — do pół godziny. Warto zlecić, gdy hosting odmawia współpracy albo gdy upload pada mimo poprawnych limitów — wtedy odpowiedź siedzi w logach serwera.


Nie możesz wgrać plików, a wsparcie hostingu odsyła Cię z kwitkiem? Ustawimy to — bezpłatna diagnoza, reakcja w ciągu dwóch godzin, od 120 zł netto za godzinę, płatność po wykonaniu.

  • upload
  • limit wgrywania
  • php
  • hosting

Masz taką sytuację u siebie?

Diagnoza i wstępna wycena bezpłatne. Płacisz dopiero po wykonaniu — napisz albo zadzwoń, odpowiadamy do 2 godzin.