PDF-Download erzwingen

Ich verwende S3, um meine Dateien in meiner Discourse-Community zu hosten. Ich habe eine iOS-App erstellt und muss PDF-Dateien herunterladen, anstatt sie in der App zu öffnen.

Ich habe eine Lösung für einen Download-Link gefunden:

<a href="download-url?wtn-download-file=true">Download File</a>

Aber für auf S3 hochgeladene PDFs weiß ich nicht, was ich tun soll.

Bearbeiten: Meine Antwort wird entfernt, da ich das Thema falsch verstanden habe :person_facepalming:

Danke thoka :+1:

Hm. Es scheint, er verlangt genau das Gegenteil meiner Feature-Anfrage …

1 „Gefällt mir“

Laut dieser Quelle sollten Sie das gewünschte Verhalten erreichen können, indem Sie download zu diesen Links über eine Theme-Komponente hinzufügen.

1 „Gefällt mir“

Ich muss einen Weg finden, alle meine PDF-Links zu ändern… es sind fast 3000 Links

Sollte eine Angelegenheit der Diskurs-Remapping sein

Wort der Warnung: Testen Sie es zuerst auf einer Staging-Site. Es funktioniert möglicherweise nicht wie erwartet.

1 „Gefällt mir“

Hallo :wave:

Ich denke, dieses Thema ist dasselbe: Force download pdf on IOS

Dafür musst du api.decorateCookedElement verwenden.

So etwas sollte funktionieren :arrow_down_small:

Platziere es im Header-Bereich einer Komponente.

<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>

Ich habe es auf meinem Gerät getestet und es funktioniert für mich, aber wenn du andere Attribute usw. verwenden möchtest, kannst du es leicht ändern… Ich hoffe, es hilft :slight_smile:

2 „Gefällt mir“