Comment limiter la taille des fichiers uploadés
Autre langages: english | … |
Problème:
Comment limiter la taille des fichiers uploadés ?
Solution:
web.py utilise le module cgi
pour parser les entrées de l’utilisateur et le module cgi
a une disposition visant à limiter la taille maximale des entrées.
Le code suivant limite la taille des données entrantes à 10 Mo.
import cgi
# Données entrantes maximum que nous acceptons lorsque REQUEST_METHOD est POST
# 0 ==> Données entrantes illimitées
cgi.maxlen = 10 * 1024 * 1024 # 10Mo
Noter que cela limite la taille des données POST, pas des fichiers uploadés. Cependant, ce sera presque pareil s’il n’y a pas d’autre entrée.
Le module cgi
lève l’exception ValueError
quand la taille des données entrées est supérieure à cgi.maxlen
. Elle peut être interceptée pour afficher le message d’erreur requis.
class upload:
def POST(self):
try:
i = web.input(file={})
except ValueError:
return "File too large"