Forcer le téléchargement pdf

J’utilise s3 pour héberger mes fichiers sur ma communauté discourse, j’ai créé une application iOS et j’ai besoin de télécharger des fichiers PDF au lieu de les ouvrir dans l’application

J’ai trouvé une solution pour un téléchargement de lien :

<a href="download-url?wtn-download-file=true"> Télécharger le fichier </a>

Mais pour les PDF téléchargés sur s3, je ne sais pas quoi faire.

Modification : suppression de ma réponse car j’avais mal compris le sujet :person_facepalming:

Merci thoka :+1:

Hm. Il semble qu’il exige exactement le contraire de ma demande de fonctionnalité…

1 « J'aime »

Selon cette source, vous devriez pouvoir obtenir le comportement souhaité en ajoutant download à ces liens via un composant de thème.

1 « J'aime »

Je dois trouver un moyen de changer tous mes liens pdf… il y a près de 3000 liens.

Devrait être une question de remappage de discours

Mot de prudence : Testez-le d’abord sur un site de staging. Il se peut que cela ne fonctionne pas comme prévu.

1 « J'aime »

Bonjour :wave:

Je pense que ce sujet est le même : Force download pdf on IOS

Pour cela, vous devez utiliser api.decorateCookedElement.

Quelque chose comme ceci devrait fonctionner :arrow_down_small:

Placez-le dans la section Header d’un composant.

<script type="text/discourse-plugin" version="0.8.42">
  api.decorateCookedElement(
    element => {
      const pdfFiles = element.querySelectorAll("a.attachment[href$='.pdf']");

      if (!pdfFiles.length) {
        return;
      }

      pdfFiles.forEach((pdf) => {
        pdf.setAttribute("download", "");
      });
    },
    { id: "download-pdf", onlyStream: true }
  );
</script>

Je l’ai testé sur mon appareil et cela fonctionne pour moi, mais si vous souhaitez utiliser d’autres attributs, etc., vous pouvez facilement les modifier… J’espère que cela vous aidera :slight_smile:

2 « J'aime »