Forzar descarga de pdf

Estoy usando s3 para alojar mis archivos en mi comunidad de discourse, hice una aplicación para iOS y necesito descargar archivos PDF en lugar de abrirlos en la aplicación.

Encontré una solución para descargar un enlace:

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

Pero para los PDF subidos en s3, no sé qué hacer.

Editar: eliminando mi respuesta ya que entendí mal el tema :person_facepalming:

Gracias thoka :+1:

Hm. Parece que exige exactamente lo contrario de mi solicitud de funcionalidad…

1 me gusta

Según esta fuente, deberías poder lograr el comportamiento deseado añadiendo download a estos enlaces a través de un componente temático.

1 me gusta

Necesito encontrar una manera de cambiar todos mis enlaces PDF… son casi 3000 enlaces.

Debería ser una cuestión de reasignación de discurso

Advertencia: Pruébelo primero en un sitio de prueba. Es posible que no funcione como se espera.

1 me gusta

Hola :wave:

Creo que este tema es el mismo: Force download pdf on IOS

Para esto, tienes que usar api.decorateCookedElement.

Algo como esto debería funcionar :arrow_down_small:

Colócalo en la sección Header de un componente.

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

Lo he probado en mi dispositivo y funciona para mí, pero si quieres usar otro atributo, etc., puedes cambiarlo fácilmente… Espero que ayude :slight_smile:

2 Me gusta