Upload gros fichiers : detecter dans le verifier() du formulaire upload
Bonjour,
Avec SPIP 3.0.16 sans plugins (sur serveur WIMP et LAMP).
Si on demande le téléchargement d'un poids de fichiers (un ou plusieurs) supérieur à POST_MAX_SIZE on se retrouve avec la page d'édition de l'article dans lequel on était dans le cadre de téléchargement : c'est super chouette artistiquement mais c'est tout (cf P.J.).
Pour résoudre ce problème, j'ai placé dans 'mes_options.php' le code suivant qui permet d'afficher un texte dans le cadre :
// capturer un formulaire post en surcharge !!! if($_SERVER['REQUEST_METHOD']=='POST' and strlen($_SERVER['CONTENT_TYPE'])>0 and substr($_SERVER['CONTENT_TYPE'],0,19)=='multipart/form-data' and $_SERVER['CONTENT_LENGTH']>inigetoctets('post_max_size')) { // on est en hors quota donc erreur echo ''; exit; } function inigetoctets($var) { $val=trim(ini_get($var)); if($val!='') { $last=strtolower($val[strlen($val)-1]); } else { $last=''; } switch($last) { // The 'G' modifier is available since PHP 5.1.0 case 'g': $val*=1024; case 'm': $val*=1024; case 'k': $val*=1024; } return $val; }Erreur de chargement :
le poids total des fichiers dépasse la limite autorisée ('.ini_get('post_max_size'). 'o).
Pour recommencer, veuillez recharger cette page.
Comme il me semble que les formulaires de téléchargement sont dans des cadres 'java' cela ne doit pas poser d'autres problèmes ? Si c'est le cas, il faudrait envisager de placer un code de ce type quelque part dans le core de SPIP pour pallier à tout formulaire de téléchargement.
Nota : si taille des données POST > POST_MAX_SIZE alors les variables $_POST et $_FILES sont vides.