From 5ebf3160aa4ce659f0dcdb9319cf3ff3d2615815 Mon Sep 17 00:00:00 2001
From: Cerdic <cedric@yterium.com>
Date: Sat, 6 May 2006 17:55:07 +0000
Subject: [PATCH] =?UTF-8?q?possibilit=C3=A9=20de=20limiter=20le=20poids=20?=
 =?UTF-8?q?des=20documents,=20et=20le=20poids=20et/ou=20la=20taille=20des?=
 =?UTF-8?q?=20images=20Le=20message=20d'erreur=20est=20normalement=20desti?=
 =?UTF-8?q?n=C3=A9=20aux=20logos,=20donc=20c'est=20pas=20g=C3=A9nial,=20ma?=
 =?UTF-8?q?is=20plus=20de=20nouvelle=20chaine=20de=20langue=20pour=20le=20?=
 =?UTF-8?q?moment?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/inc/getdocument.php | 40 ++++++++++++++++++++++++++++++++++++++
 ecrire/inc/utils.php       |  6 ++++++
 2 files changed, 46 insertions(+)

diff --git a/ecrire/inc/getdocument.php b/ecrire/inc/getdocument.php
index 016c9351af..d5b0af1f43 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 1530b2d7bb..dad75a7414 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"));
-- 
GitLab