强制PDF下载

我在 discourse 社区使用 s3 来托管我的文件,我制作了一个 iOS 应用,需要下载 pdf 文件而不是在应用中打开。

我找到了一个下载链接的解决方案:

<a> download File</a>

但是对于上传到 s3 的 pdf,我不知道该怎么做。

编辑:我误解了主题,删除我的答案 :person_facepalming:

谢谢 thoka :+1:

嗯。看来他要求的和我功能请求完全相反……

1 个赞

根据这个来源,您应该可以通过在这些链接中添加 download 来实现所需行为,只需使用主题组件即可。

1 个赞

我需要找到一种方法来更改我所有的pdf链接……差不多有3000个链接

应该是重映射 discourse 的问题

谨防:先在暂存站点上进行测试。它可能无法按预期工作。

1 个赞

你好 :wave:

我认为这个话题和这个一样:Force download pdf on IOS

为此,您必须使用 api.decorateCookedElement

类似这样的代码应该可以工作 :arrow_down_small:

将其放置到组件的 Header 部分。

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

我在我的设备上测试过,对我来说是有效的,但如果您想使用其他属性等,您可以轻松更改……希望这对您有帮助 :slight_smile:

2 个赞