Projet

Général

Profil

Development #28002

servir les fichiers svg sous forme d'attachment

Ajouté par Frédéric Péters il y a plus de 5 ans. Mis à jour il y a plus de 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
14 novembre 2018
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Pour éviter leur ouverture dans le navigateur avec possible exécution de javascript intégré. (bien sûr ça n'empêche pas de télécharger le fichier puis de l'ouvrir, mais ce ne sera pas dans le contexte http du site)


Fichiers

Révisions associées

Révision 2e7bd9fe (diff)
Ajouté par Frédéric Péters il y a plus de 5 ans

misc: serve svg files uploaded by users as attachments (#28002)

Historique

#1

Mis à jour par Frédéric Péters il y a plus de 5 ans

#3

Mis à jour par Thomas Noël il y a plus de 5 ans

Normalement en HTML c'est pas plutôt l'attribut "download" sur l'ancre qui gère l'affaire facilement ?

#4

Mis à jour par Frédéric Péters il y a plus de 5 ans

Oui mais ça n'est pas suffisant (il y est déjà).

#5

Mis à jour par Frédéric Péters il y a plus de 5 ans

If Content-Disposition: is set to inline, Firefox prioritizes Content-Disposition, like the filename case, while Chrome prioritizes the download attribute. — https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a

#6

Mis à jour par Thomas Noël il y a plus de 5 ans

  • Statut changé de Solution proposée à Solution validée

Frédéric Péters a écrit :

Oui mais ça n'est pas suffisant (il y est déjà).

En fait je pensais à

diff --git a/wcs/admin/workflows.py b/wcs/admin/workflows.py
index dccd494e..aa83ae3c 100644
--- a/wcs/admin/workflows.py
+++ b/wcs/admin/workflows.py
@@ -1505,7 +1505,7 @@ class WorkflowPage(Directory):
         if self.workflow.possible_status:
             r += htmltext('<div class="bo-block">')
             r += htmltext(graphviz(self.workflow, include=True))
-            r += htmltext('<div class="full-screen-link"><a href="schema.svg">%s</a></div>') % _('Full Screen')
+            r += htmltext('<div class="full-screen-link"><a href="schema.svg" download>%s</a></div>') % _('Full Screen')
             r += htmltext('</div>') # bo-block

         formdefs = [x for x in FormDef.select() if x.workflow_id == self.workflow.id]

mais je dois rater quelque chose de trivial

#7

Mis à jour par Frédéric Péters il y a plus de 5 ans

  • Statut changé de Solution validée à Résolu (à déployer)

mais je dois rater quelque chose de trivial

On ne parle pas de ce fichier mais des fichiers SVG qu'un usager pourrait avoir uploadé.

Pour ceux-là on tape déjà l'attribut download :

wcs/fields.py:        t += htmltext('<a download="%s" href="[download]?f=%s">') % (value.base_filename, self.id)

J'ai précisé le message de commit,

commit 2e7bd9fe33c10c38a81d8d618351118aeee5443c
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Wed Nov 14 19:59:01 2018 +0100

    misc: serve svg files uploaded by users as attachments (#28002)
#8

Mis à jour par Thomas Noël il y a plus de 5 ans

Frédéric Péters a écrit :

mais je dois rater quelque chose de trivial

On ne parle pas de ce fichier mais des fichiers SVG qu'un usager pourrait avoir uploadé.

Je savais bien que je n'avais rien compris. Je vais faire comme Emmanuel, retourner dans ma cave et arrêter de parler quelques heures.

#9

Mis à jour par Frédéric Péters il y a plus de 5 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF