diff --git a/ecrire/inc/getdocument.php b/ecrire/inc/getdocument.php index 016c9351af941ba45382774285caff28632b7327..d5b0af1f4396e3726f10ec12e816aca3e9dd05c7 100644 --- a/ecrire/inc/getdocument.php +++ b/ecrire/inc/getdocument.php @@ -288,6 +288,46 @@ function ajouter_un_document ($source, $nom_envoye, $type_lien, $id_lien, $mode, $hauteur = intval($size_image[1]); $type_image = decoder_type_image($size_image[2]); + $poids = filesize($fichier); + if (!$type_image) { + if (_DOC_MAX_SIZE > 0 + AND $poids > _DOC_MAX_SIZE*1024) { + @unlink ($fichier); + check_upload_error(6, + _T('info_logo_max_poids', + array('maxi' => taille_en_octets(_DOC_MAX_SIZE*1024), + 'actuel' => taille_en_octets($poids)))); + } + } + else { + if (_IMG_MAX_SIZE > 0 + AND $poids > _IMG_MAX_SIZE*1024) { + @unlink ($fichier); + check_upload_error(6, + _T('info_logo_max_poids', + array('maxi' => taille_en_octets(_IMG_MAX_SIZE*1024), + 'actuel' => taille_en_octets($poids)))); + } + + if (_IMG_MAX_WIDTH * _IMG_MAX_HEIGHT + AND ($size_image[0] > _IMG_MAX_WIDTH + OR $size_image[1] > _IMG_MAX_HEIGHT)) { + @unlink ($fichier); + check_upload_error(6, + _T('info_logo_max_taille', + array( + 'maxi' => + _T('info_largeur_vignette', + array('largeur_vignette' => _IMG_MAX_WIDTH, + 'hauteur_vignette' => _IMG_MAX_HEIGHT)), + 'actuel' => + _T('info_largeur_vignette', + array('largeur_vignette' => $size_image[0], + 'hauteur_vignette' => $size_image[1])) + ))); + } + } + // Si on veut uploader une vignette, il faut qu'elle ait ete bien lue if ($mode == 'vignette' AND !($largeur * $hauteur)) { @unlink($fichier); diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php index 1530b2d7bbea276d9ce12fbc3ba2db2f492eb63d..dad75a741494d99d8428e1e34f2a57168651dbbb 100644 --- a/ecrire/inc/utils.php +++ b/ecrire/inc/utils.php @@ -876,6 +876,12 @@ function spip_initialisation() { define('_LOGO_MAX_SIZE', 0); # poids en ko define('_LOGO_MAX_WIDTH', 0); # largeur en pixels define('_LOGO_MAX_HEIGHT', 0); # hauteur en pixels + + define('_DOC_MAX_SIZE', 0); # poids en ko + + define('_IMG_MAX_SIZE', 0); # poids en ko + define('_IMG_MAX_WIDTH', 0); # largeur en pixels + define('_IMG_MAX_HEIGHT', 0); # hauteur en pixels // Le fichier de connexion a la base de donnees define('_FILE_CONNECT_INS', (_DIR_RESTREINT . "inc_connect"));