Limitez la taille du fichier de téléchargement et redirigez l'utilisateur vers la page d'erreur si la limite dépasse

9

Est-il possible de rediriger l'utilisateur vers la file too bigpage du fichier

lorsque la taille de la demande POST dépasse la limite spécifiée?

Je connais l'option max-request-size, mais elle ne donne qu'une page statique qui ne peut pas être surchargée.

Je pense à créer une règle de réécriture qui prend

taille du contenu du corps de la demande en entrée et redirige vers la page d'erreur

MISE À JOUR

maintenant, nous utilisons nginx comme frontal. De nouvelles suggestions?

jonny
la source

Réponses:

19

Vous devriez pouvoir le faire en utilisant quelque chose comme:

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
la source
mais cela ne fonctionnera pas avec la plupart des navigateurs modernes - malheureusement, ils ne peuvent pas gérer correctement 413. Donc, je crains qu'il n'y ait pas de solution à ce problème (enfin, à moins que vous ne puissiez patcher tous les navigateurs actuels)
rvs
7
Vous pouvez changer le code d'état en toute autre chose avec error_page si vous ne voulez pas réellement retourner 413 au client. error_page 413 = 403 /custompage.html; utilisera 403, par exemple.
kolbyjack
3

N'oubliez pas de définir post_max_sizeet upload_max_filesizede la valeur correspondante dans php.ini.

quanta
la source
Nous ne sommes pas au php.
jonny
0

En ce qui concerne @quanta post, vous pouvez également mettre une valeur inférieure dans php et utiliser php pour afficher l'erreur et effectuer la redirection correctement. Il peut également être fait dans d'autres langages de script :-)

jflaflamme
la source
Je n'ai pas mentionné notre pile côté serveur. PHP <> monde entier :)
jonny