Ogranicz rozmiar przesyłanego pliku i przekieruj użytkownika na stronę błędu, jeśli limit zostanie przekroczony


9

Czy możliwe jest przekierowanie użytkownika do file too bigstrony pliku

kiedy rozmiar żądania POST przekroczy określony limit?

Wiem o opcji maksymalnego żądania, ale daje ona tylko statyczną stronę, której nie można przeciążić.

Zastanawiam się nad stworzeniem reguły przepisywania

rozmiar zawartości z treści żądania jako dane wejściowe i przekierowanie na stronę błędu

AKTUALIZACJA

teraz używamy nginx jako interfejsu. Jakieś nowe sugestie?

Odpowiedzi:


19

Powinieneś być w stanie to zrobić za pomocą czegoś takiego:

server {
  server_name example.com;

  client_max_body_size 10m; # or whatever size limit you want
  error_page 413 /custompage.html; # you can also use a named location here if you like
}

ale to nie będzie działać z większością współczesnych przeglądarek - niestety nie mogą poprawnie obsługiwać 413. Obawiam się, że nie ma rozwiązania tego problemu (no chyba, że ​​można załatać wszystkie obecne przeglądarki)
rvs

7
Możesz zmienić kod stanu na cokolwiek innego za pomocą error_page, jeśli nie chcesz faktycznie zwracać 413 klientowi. error_page 413 = 403 /custompage.html; użyje na przykład 403.
kolbyjack

3

Nie zapomnij ustawić post_max_sizei upload_max_filesizeodpowiedniej wartości w php.ini.


Nie jesteśmy w php.
jonny

0

Jeśli chodzi o post @quanta, możesz również umieścić niższą wartość w php i użyć php do wyświetlenia błędu i prawidłowego przekierowania. Można go również wykonać w innych językach skryptowych :-)


Nie wspomniałem o naszym stosie po stronie serwera. PHP <> cały świat :)
jonny
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.