Bonjour à tou·te·s,
En SPIP3 nom_fichier_copie_locale dans inc/distant réduit les noms de fichiers, ce que ne fait pas un téléversement,
Apparemment depuis longtemps mais je n'en vois pas la raison, comme le suggère fa_b ce serait bien d'unifier, et plutôt en respectant le nom du fichier original, nop?
Salut,
il s’agit d’éviter de copier au même endroit (et donc d’écraser l’un des deux) deux fichiers dont l’url serait différente, mais le nom de fichier identique. (Le téléversement fait un truc équivalent en ajoutant (de mémoire) un “_2” à la fin du nom du fichier, mais ce n’est pas possible pour les médias distants car on a besoin d’une fonction qui donne toujours le même résultat, indépendamment de ce qui se trouve par ailleurs sur le disque.)
Fil je rebondi,
J'ai récupéré un bout de plugin (Marcimat) pour télécharger un doc joint à un form de formidable, le problème est justement que les docs joints ont toujours le même nom et donc si je up 2 forms l'un derrière l'autre mon second écrase le doc joint... si j'ai pas eu le temps de mettre le doc en sécurité.
Je pensai taguer le nom du fichier avec l'heure unix, mais c'est du coup peut être pas une bonne idée...
Tu peux expliquer le principe de Spip là dessus
Merci
Paulbe
J'ai récupéré un bout de plugin (Marcimat) pour télécharger un doc joint à
un form de formidable
Soit c'était pas le bon bout, soit il y a un bug dans formidable.
-- Fil
Bonjour,
il s'agit d'éviter de copier au même endroit (et donc d'écraser l'un des
deux) deux fichiers dont l'url serait différente, mais le nom de fichier
identique. (Le téléversement fait un truc équivalent en ajoutant (de
mémoire) un "_2" à la fin du nom du fichier, mais ce n'est pas possible
pour les médias distants car on a besoin d'une fonction qui donne
toujours le même résultat, indépendamment de ce qui se trouve par
ailleurs sur le disque.)-- Fil
J'entends ce que tu dis,
mais pour d'autres usages,
on a parfois besoin de delocker cette façon de faire, comme ici, ce que j'imaginais à la dernière étape d'aspiration d'un site pour rapatrier les docs.
Voici le processus que j'emploie en utilisant SPIP pour rapatrier le contenu d'un site sans accès à la base, (je pense à un script d'aspiration pour archives_militantes)
Aspiration et fabrication du RSS,
- Analyse les liens d'une page, récupère leurs contenus, nettoie le html
- Analyse les liens relatifs et images pour chaque page
- Génére un rss des titres/contenus récupérés avec enclosures des documents et des images extraites et garde ces urls dans le corps du content_encoded.
Passage en SPIP
- Passage en SPIP avec la syndication du flux RSS généré
- Le plugin RSS2articles transforme les articles syndiqués en articles SPIP et lie leurs documents (enclosures) en mode distant.
- (Todo passer le contenu html en code SPIP)
Au final,
Le plugin Docker recopie dans le site les documents distants en utilisant inc/distant et donc nom_fichier_copie_locale, mais pour ça il y a besoin de conserver les noms des fichiers, voir même aussi d'en extraire le nom pour son titre (cf titrer dans medias qui ne s'appliquent pas aux docs distants recopiés).
Je voyais juste un petit script pour ensuite réécrire en base les
http://site_distant/dossierdedocs/image_ou_document.ext
en
<http://SPIP/IMP/ext/image_ou_document.ext>
et les donner à manger au plugin ressource.
Voilou, désolée pour la longueur, mais tout cela commence à prendre forme, j'en suis à la doc ![]()
on a parfois besoin de delocker cette façon de faire, comme ici, ce que
j'imaginais à la dernière étape d'aspiration d'un site pour rapatrier les
docs.
en ce cas il suffit de faire un copy ou rename à la fin, en PHP ou via un
squelette |copie_locale|rename{IMG/format/machin.format}