在新标签页中打开PDF,保存文件的文件名错误

时间:2019-06-11 14:32:48

标签: javascript java angular spring-boot pdf

有一个Angular 6应用程序,具有下载pdf文件的功能。它使用另一个Spring Boot应用程序中的REST API来下载文件。

要求是我需要在新选项卡中打开pdf文件,并且在保存时应使用有意义的名称。

我也可以下载文件并在新标签页中打开。但是在保存文件时,它会从网址中获取名称。

我尝试通过直接从浏览器中的REST API打开文件并保存它,以及从Angular应用程序获取blob并在新窗口中打开来进行尝试。两者都打开文件,但在保存时都使用URL命名。

  1. 角度-在新窗口中打开Blob Blob:https://defg.com/89a0396e-994b-43d0-b3e3-aaa95d47db9f 如果我尝试下载打开的文件,建议使用名称保存 89a0396e-994b-43d0-b3e3-aaa95d47db9f.pdf 是否可以通过以下方法传递或设置文件名?

    var fileURL = window.URL.createObjectURL(file); window.open(fileURL,“ _blank”);

  2. API-采用加密名称 https://abcd.com/ws/fileDownload/85C1E5010AFAE309E89534FAC594C9110D74FED4DF78AAA8EE199C78B570FABF8BC6640F0563778DD963 如果我尝试下载打开的文件,则建议第一次使用正确的名称进行保存,将来自URL的字符串显示为第二次尝试的名称,85C1E5010AFAE309E89534FAC594C9110D74FED4DF78AAA8EE199C78B570FABF8BC6640F0563778DD963.pdf

检查到的响应,标题看起来不错,

Content-Disposition:内联; filename =“” test.pdf“

任何建议都会有所帮助。预先感谢。

1 个答案:

答案 0 :(得分:0)

您可以按以下方式使用file-saver库:

import { saveAs } from 'file-saver';
...
awesomeDownloader(url: string, fileName: string) {
  const blobFile = functionsThatGetsTheBlob(url);
  saveAs(blobFile, fileName);
}
...