Changeset 113550 in spip-zone


Ignore:
Timestamp:
Jan 21, 2019, 2:32:07 PM (3 months ago)
Author:
cedric@…
Message:

Report de r105250 : Il arrive parfois que des documents images soient téléversés avec la mauvaise extension par rapport à leur contenu réel. Par exemple recevoir un fichier.jpg alors que son contenu est du png.
On corrige cette subtilité lorsqu’on ajoute un document. Dans ce cas le nom du fichier reçoit en complément la nouvelle extension (il devient donc ici fichier.jpg.png), et on le stocke
dans le bon répertoire (ie: IMG/png/fichier.jpg.png). Quelques logs au passage de ces cas.

Location:
_core_/branches/spip-3.1/plugins/medias
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _core_/branches/spip-3.1/plugins/medias

  • _core_/branches/spip-3.1/plugins/medias/action/ajouter_documents.php

    r113380 r113550  
    147147                );
    148148
    149                 $type_image = ''; // au pire
    150149                $champs['titre'] = '';
    151150                if ($titrer) {
     
    178177                $infos = renseigner_taille_dimension_image($champs['fichier'], $champs['extension']);
    179178                if (is_string($infos)) {
     179                        // c'est un message d'erreur !
    180180                        return $infos;
    181                 } // c'est un message d'erreur !
     181                }
     182
     183                // lorsqu’une image arrive avec une mauvaise extension par rapport au mime type, adapter.
     184                // Exemple : si extension .jpg mais le contenu est un png
     185                if (!empty($infos['type_image']) and $infos['type_image'] !== $champs['extension']) {
     186                        spip_log('Image `' . $file['name'] . '` mauvaise extension. Correcte : ' . $infos['type_image'], 'medias' . _LOG_INFO);
     187                        $new = copier_document($infos['type_image'], $file['name'] . '.' . $infos['type_image'], $champs['fichier']);
     188                        if ($new) {
     189                                supprimer_fichier($champs['fichier']);
     190                                $champs['fichier'] = $new;
     191                                $champs['extension'] = $infos['type_image'];
     192                                $infos = renseigner_taille_dimension_image($champs['fichier'], $champs['extension']);
     193                                if (is_string($infos)) {
     194                                        // c'est un message d'erreur !
     195                                        return $infos;
     196                                }
     197                                spip_log('> Image `' . $file['name'] . '` renommée en : ' . basename($champs['fichier']), 'medias' . _LOG_INFO);
     198                        } else {
     199                                spip_log('! Image  `' . $file['name'] . '` non renommée en extension : ' . $champs['extension'], 'medias' . _LOG_INFO_IMPORTANTE);
     200                        }
     201                }
    182202
    183203                $champs = array_merge($champs, $infos);
  • _core_/branches/spip-3.1/plugins/medias/inc/renseigner_document.php

    r113380 r113550  
    123123                        $res = recuperer_url($fichier, array('file' => $tmp, 'taille_max' => 512 * 1024));
    124124                        if (!$res) {
    125                                 spip_log("Echec copie du fichier $fichier");
     125                                spip_log("Echec copie du fichier $fichier", 'medias');
    126126
    127127                                return _T('medias:erreur_copie_fichier', array('nom' => $fichier));
     
    129129                        $fichier = $tmp;
    130130                } else {
    131                         spip_log("Echec copie du fichier $fichier");
     131                        spip_log("Echec copie du fichier $fichier", 'medias');
    132132
    133133                        return _T('medias:erreur_copie_fichier', array('nom' => $fichier));
  • _core_/branches/spip-3.1/plugins/medias/paquet.xml

    r113164 r113550  
    22        prefix="medias"
    33        categorie="multimedia"
    4         version="2.11.47"
     4        version="2.11.48"
    55        etat="stable"
    66        compatibilite="[3.1.0;3.1.*]"
Note: See TracChangeset for help on using the changeset viewer.