From c7d4b9d3a65934f0cd01a8f99038a6e45d06827c Mon Sep 17 00:00:00 2001
From: Fil <fil@rezo.net>
Date: Sun, 14 Apr 2002 21:59:40 +0000
Subject: [PATCH] je m'suis melange, avec tout ca, et j'ai commite le mauvais
 fichier... retablissement du mix modifs arno + modifs fil + modifs antoine
 (inch-'allah)

Pour resumer :

* upload plusieurs fichiers d'un coup

*
 envoie vers spip_test_dirs si probleme de droits

* suppression fichier
 ecrire/upload/xxxx (je laisse le code en commentaire)

---
 spip_image.php3 | 39 +++++++++++++++++++++++++++++++--------
 1 file changed, 31 insertions(+), 8 deletions(-)

diff --git a/spip_image.php3 b/spip_image.php3
index ec33f5b86f..0f37256cad 100644
--- a/spip_image.php3
+++ b/spip_image.php3
@@ -63,7 +63,6 @@ function deplacer_fichier_upload($source, $dest) {
 		exit;
 	}
 
-	umask('0000');
 	$ok = @copy($source, $dest);
 	if (!$ok) $ok = @move_uploaded_file($source, $dest);
 	if ($ok)
@@ -199,7 +198,7 @@ function ajout_doc($orig, $source, $dest, $mode, $id_document, $doc_vignette='',
 		$id_document = 0;
 	}
 	if (!$id_document) {
-		$query = "INSERT spip_documents (id_type, titre) VALUES ($id_type, 'sans titre')";
+		$query = "INSERT spip_documents (id_type, titre) VALUES ($id_type, '')";
 		mysql_query($query);
 		$id_document = mysql_insert_id();
 		$nouveau = true;
@@ -234,7 +233,7 @@ function ajout_doc($orig, $source, $dest, $mode, $id_document, $doc_vignette='',
 		$hauteur_prev = $preview['height'];
 		$largeur_prev = $preview['width'];
 		$fichier_prev = $preview['fichier'];
-		$query = "INSERT spip_documents (id_type, titre, largeur, hauteur, fichier) VALUES ('1', 'vignette', '$largeur_prev', '$hauteur_prev', '$fichier_prev')";
+		$query = "INSERT spip_documents (id_type, titre, largeur, hauteur, fichier) VALUES ('1', '', '$largeur_prev', '$hauteur_prev', '$fichier_prev')";
 		mysql_query($query);
 		$id_preview = mysql_insert_id();
 		$query = "UPDATE spip_documents SET id_vignette = '$id_preview' WHERE id_document = $id_document";
@@ -272,7 +271,7 @@ function ajout_doc($orig, $source, $dest, $mode, $id_document, $doc_vignette='',
 	}
 	
 	if ($doc_vignette){
-		$query = "UPDATE spip_documents SET id_vignette=$doc_vignette, titre='$titre', descriptif='$descriptif' WHERE id_document=$id_document";
+		$query = "UPDATE spip_documents SET id_vignette=$doc_vignette, titre='', descriptif='' WHERE id_document=$id_document";
 		mysql_query($query);
 	
 	}
@@ -297,10 +296,31 @@ if (!$image_name AND $image2) {
 // ajouter un document
 //
 if ($ajout_doc == 'oui') {
-	if ($forcer_document == 'oui')
-		$id_document = ajout_doc($image_name, $image, $fichier, "document", $id_document);
-	else
-		$id_document = ajout_doc($image_name, $image, $fichier, $mode, $id_document);
+	if ($dossier_complet){
+		$myDir = opendir('ecrire/upload');
+		while($entryName = readdir($myDir)) {
+			if (is_file("ecrire/upload/".$entryName) AND !($entryName=='remove.txt')) {
+			if (ereg("\.([^.]+)$", $entryName, $match)) {
+					$ext = strtolower($match[1]);
+					if ($ext == 'jpeg')
+						$ext = 'jpg';
+					$req = "SELECT extension FROM spip_types_documents WHERE extension='$ext'";
+					if ($inclus)
+						$req .= " AND inclus='$inclus'";
+					if (@mysql_fetch_array(mysql_query($req)))
+						$id_document = ajout_doc('ecrire/upload/'.$entryName, 'ecrire/upload/'.$entryName, '', 'document', '');
+				}
+			}
+		}
+		closedir($myDir);
+	
+	} 
+	else {
+		if ($forcer_document == 'oui')
+			$id_document = ajout_doc($image_name, $image, $fichier, "document", $id_document);
+		else
+			$id_document = ajout_doc($image_name, $image, $fichier, $mode, $id_document);
+	}
 }
 
 
@@ -353,8 +373,11 @@ if ($doc_supp) {
 
 
 // supprimer le fichier original si pris dans ecrire/upload
+/* en debat.... peser securite vs conformite upload http
 if ($supprimer_ecrire_upload)
 	@unlink ($supprimer_ecrire_upload);
+*/
+
 
 //
 // redirection
-- 
GitLab