Project

General

Profile

Bug #8358

Upload d'une archive .ZIP dans les Documents

Added by David Guénard almost 5 years ago. Updated almost 5 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
Documents
Target version:
Start date:
21/07/2016
Due date:
% Done:

20%

Estimated time:
Complexity:
Normal
SCRUM pts - complexity:
?

Description

Lors de l'upload d'une arborescence de dossiers ou fichiers compressés dans mes documents, si on demande la décompression cela ne fonctionne pas si des chemins sont en majuscule.

Le problème provient de la librairie utilisée: jbroadway/urlify/URLify.php à la ligne 236 :

$text = strtolower ($text);

J'ai commenté cette ligne en attendant en espérant qu'il ny ait pas d'effet de bord...

Associated revisions

Revision 4ff94fd3 (diff)
Added by Angel Fernando Quiroz Campos almost 5 years ago

Minor - Fix use of function - refs #8358

History

#1

Updated by Yannick Warnier almost 5 years ago

  • Target version changed from 1.11.0 to 2.0

Effectivement. En fait, le problème est assez complexe.
Cette réduction en minuscule provient de la librairie URLify, que nous incluons directement depuis l'origine. J'ignore pourquoi ils le mettent en minuscule, mais en principe il est vrai que les URLs ne gèrent pas les majuscules (ou plutôt si, mais pour les réduire à des minuscules).

Cette modification apparaît en avril 2015 (donc durant la préparation du passage à 1.10.0), donc ça n'a pas toujours été comme ça.

Si on teste la décompression actuellement avec la structure suivante:
  • ABC/
    • majuscule.txt
  • abc/
    • minuscule.txt
...alors Chamilo te génère un seul répertoire "abc" dans lequel sont contenus les fichiers:
  • abc/
    • majuscule.txt
    • minuscule.txt

Pourquoi? Parce que Chamilo tente d'éviter les cas non-portables où on exporterait ensuite un zip de ce répertoire vers Windows, où ABC et abc sont traités comme le même répertoire de toute façon.

Par contre, si tu commentes la ligne de minusculisation, le résultat dans Chamilo est comme ceci:
  • ABC/
    • majuscule.txt
  • abc_1/
    • minuscule.txt

Le _1 qui se rajoute est là parce que Chamilo tente d'éviter les répertoires de même nom, même si les majuscules sont différentes. Pourquoi? Même problème: ça générait un problème d'avoir ABC et abc au même niveau (donc on utilise des noms différents) sous Windows (qui reste la majorité des postes clients).

Malgré tout, l'introduction de la "minusculisation" de l'import zip est relativement récente (et je désapprouve, personnellement - je n'avais pas perçu la subtilité), et donc pourrait être retirée sans gros risque a priori, sur ton propre portail. Le fait de le retirer de Chamilo est un peu plus compliqué que ça puisqu'il faudrait demander au développeur de URLify d'apporter un patch à sa librairie.

Il reste un problème: lors de l'import d'un zip avec des fichiers HTML et des média dans des chemins relatifs (au sein du code de ces fichiers HTML), le fait que ces chemins soient renommés en minuscules peut causer des problèmes qui exigeraient que nous modifions également la source des fichiers HTML en question (ce qui est aussi un besoin de toute façon quand ces fichiers HTML ont été créés sous Windows par quelqu'un de peu attentif à la portabilité).

Donc voilà, je préfère postposer cette tâche à la 2.0 puisque nous sommes déjà en 1.11 alpha (presque beta), mais je ne la rejette pas (loin de là).

#3

Updated by Yannick Warnier almost 5 years ago

  • % Done changed from 0 to 20
#4

Updated by David Guénard almost 5 years ago

Merci, a suivre...

Also available in: Atom PDF