0

Ηι!

我使用HTTP.get('/ehde_pdf')通过 routes.rb 调用执行此代码的控制器方法:

send_data(
          "#{Rails.root}/tmp/ehde_pdf.pdf",
          filename: "your_custom_file_name.pdf",
          type: "application/pdf"
      )

它将pdf数据返回给浏览器,但它没有作为下载提示出现在我们的页面中。我可以从例如 Mozilla Developer Tools -> Network 中看到浏览器获取文件数据,我可以通过双击下载它: 在此处输入图像描述

有什么方法可以从 HTTP.get('/ehde_pdf') 获取文件数据并直接显示下载提示?

谢谢!!!

4

2 回答 2

0

更正:控制器代码是

send_file(
      "#{Rails.root}/tmp/ehde_pdf.pdf",
      filename: "your_custom_file_name.pdf",
      type: "application/pdf"
  )
于 2020-07-15T11:16:20.583 回答
0

在这种情况下,您想使用javascript blob 。你可以这样做:


(...some api call here)
  .then(res => {
    const blob = new Blob([res.data]);
    const link = document.createElement(triggerTag);
    link.href = window.url.createObjectURL(blob);
    link.download = 'some_file_name';
    link.click();
    window.URL.revokeObjectURL(link.href);
  })
  .catch(....);

这样,您可以在用户单击按钮下载 pdf 时以编程方式触发下载。

于 2020-07-30T22:10:49.710 回答