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?

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
}

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.


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 :-)


Eu não mencionei nossa pilha do lado do servidor. PHP <> mundo inteiro :)
jonny
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.