diff --git a/action/ajouter_documents.php b/action/ajouter_documents.php index aa129a9dfd3a903ed9e1d24de6e2df9fff3fe84a..3ba1f336437a6b0da613a4b8088dfe45dfa7d435 100644 --- a/action/ajouter_documents.php +++ b/action/ajouter_documents.php @@ -185,7 +185,8 @@ function action_ajouter_un_document_dist($id_document, $file, $objet, $id_objet, // Exemple : si extension .jpg mais le contenu est un png if (!empty($infos['type_image']) and $infos['type_image'] !== $champs['extension']) { spip_log('Image `' . $file['name'] . '` mauvaise extension. Correcte : ' . $infos['type_image'], 'medias' . _LOG_INFO); - $new = copier_document($infos['type_image'], $file['name'] . '.' . $infos['type_image'], $champs['fichier']); + $subdir = determiner_sous_dossier_document($infos['type_image'], $file['name'] . '.' . $infos['type_image'], $mode); + $new = copier_document($infos['type_image'], $file['name'] . '.' . $infos['type_image'], $champs['fichier'], $subdir); if ($new) { supprimer_fichier($champs['fichier']); $champs['fichier'] = $new; @@ -290,6 +291,23 @@ function action_ajouter_un_document_dist($id_document, $file, $objet, $id_objet, return $id_document; } +/** + * Sous-repertoire dans lequel on stocke le document + * en regle general $ext/ sauf pour les logo + * @param $ext + * @param $fichier + * @param $mode + * @return mixed + */ +function determiner_sous_dossier_document($ext, $fichier, $mode) { + + // si mode un logoxx on met dans logo/ + if (strncmp($mode, 'logo', 4) === 0) { + return "logo"; + } + + return $ext; +} /** * Corrige l'extension du fichier dans quelques cas particuliers @@ -407,8 +425,9 @@ function fixer_fichier_upload($file, $mode = '') { * On vérifie que le fichier existe et qu'il contient quelque chose */ if (is_array($row = verifier_upload_autorise($file['name'], $mode))) { + $subdir = determiner_sous_dossier_document($row['extension'], $file['name'], $mode); if (!isset($row['autozip'])) { - $row['fichier'] = copier_document($row['extension'], $file['name'], $file['tmp_name']); + $row['fichier'] = copier_document($row['extension'], $file['name'], $file['tmp_name'], $subdir); /** * On vérifie que le fichier a une taille * si non, on le supprime et on affiche une erreur @@ -460,7 +479,7 @@ function fixer_fichier_upload($file, $mode = '') { return false; } - $row['fichier'] = copier_document($row['extension'], $file['name'], $source); + $row['fichier'] = copier_document($row['extension'], $file['name'], $source, $subdir); spip_unlink($source); /** * On vérifie que le fichier a une taille diff --git a/paquet.xml b/paquet.xml index 2f245ac6166b225c6ce187793b37418d72ff8a01..a9975572bfcd0f5287e4942b8f3fecc5fd94033d 100644 --- a/paquet.xml +++ b/paquet.xml @@ -1,7 +1,7 @@ <paquet prefix="medias" categorie="multimedia" - version="2.24.0" + version="2.24.1" etat="stable" compatibilite="[3.3.0-dev;3.3.*]" logo="prive/themes/spip/images/portfolio-32.png"