From d593dc1c3eae1600fc32bf2b2e87c27ae25ba209 Mon Sep 17 00:00:00 2001
From: Cerdic <cedric@yterium.com>
Date: Thu, 21 Oct 2021 15:22:13 +0200
Subject: [PATCH] Lors de l'upload de documents, gerer le cas des fichiers avec
 multiples extensions : on ne laisse que celles qui sont autorisees a l'upload
 si possible, sinon on ne garde que la derniere

---
 ecrire/inc/documents.php | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/ecrire/inc/documents.php b/ecrire/inc/documents.php
index 5236a15f29..7a33df6502 100644
--- a/ecrire/inc/documents.php
+++ b/ecrire/inc/documents.php
@@ -149,6 +149,19 @@ function copier_document($ext, $orig, $source, $subdir = null) {
 	// pour les images transformees par rotation (action/documenter)
 	$dest = preg_replace(',-r(90|180|270)$,', '', $dest);
 
+	while (preg_match(",\.(\w+)$,", $dest, $m)) {
+		if (!function_exists('verifier_upload_autorise')
+		  or !$r = verifier_upload_autorise($dest)
+		  or $r['autozip']) {
+			$dest = substr($dest, 0, -strlen($m[0])) . '_' . $m[1];
+			break;
+		}
+		else {
+			$dest = substr($dest, 0, -strlen($m[0]));
+			$ext = $m[1] . "." . $ext;
+		}
+	}
+
 	// Si le document "source" est deja au bon endroit, ne rien faire
 	if ($source == ($dir . $dest . '.' . $ext)) {
 		return $source;
-- 
GitLab