Limite o tamanho do arquivo de upload e redirecione o usuário para a página de erro se o limite exceder

9

É possível redirecionar o usuário para a file too bigpágina do arquivo

quando o tamanho da solicitação POST exceder o limite especificado?

Estou ciente da opção max-request-size, mas fornece apenas uma página estática que não pode ser sobrecarregada.

Estou pensando em criar uma regra de reescrita que leva

tamanho do conteúdo do corpo da solicitação como entrada e redireciona para a página de erro

ATUALIZAR

agora usamos o nginx como front-end. Alguma sugestão nova?

jonny
fonte

Respostas:

19

Você deve conseguir fazer isso usando algo como:

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
}
kolbyjack
fonte
mas isso não funcionará com a maioria dos navegadores modernos - infelizmente eles não conseguem lidar com o 413 corretamente. Então, eu tenho medo que não há solução para este problema (bem, a menos que você pode corrigir todos os navegadores atuais)
RVS
7
Você pode alterar o código de status para qualquer outra coisa com error_page, se não quiser realmente retornar 413 para o cliente. error_page 413 = 403 /custompage.html; usará 403, por exemplo.
precisa saber é o seguinte
3

Não se esqueça de definir post_max_sizee upload_max_filesizeao valor correspondente em php.ini.

quanta
fonte
Nós não estamos no php.
jonny
0

Em relação à publicação @quanta, você também pode colocar um valor mais baixo no php e usar o php para exibir o erro e fazer o redirecionamento corretamente. Também pode ser feito em outras linguagens de script :-)

jflaflamme
fonte
Eu não mencionei nossa pilha do lado do servidor. PHP <> mundo inteiro :)
jonny