相关疑难解决方法(0)

BLOB URL的自定义名称

我们有一个Angular应用程序,它获取一些输入参数并将它们发送到后端进行处理.处理结果是我们想要在新选项卡中打开的pdf文件.

执行此操作的代码与以下内容类似:

myService.getDocument(document)
  .then(function(response) {
    if (response.error) {
      // Error handling goes here
    } else {
      var file = new BLob([response.data), {type: 'application/pdf'});
      var fileURL = URL.createObjectURL(file);
      $window.open(fileURL, '_blank_');
    }
  });
Run Code Online (Sandbox Code Playgroud)

一切正常,但浏览器中的URL显示一些随机生成的字符串,如下所示:

blob:http://localhost:3000/85cad96e-e44e-a1f9-db97a96ed3fe
Run Code Online (Sandbox Code Playgroud)

显然这对最终用户来说看起来不太好,我们更愿意展示对用户有意义的东西,如下所示:

blob:ftp://localhost:3000/my_document_name_or_whatever
Run Code Online (Sandbox Code Playgroud)

我是JS的新手,是Angular的新手,是HTML的新手,希望我的问题听起来不是很天真.

提前感谢您的意见.

javascript angularjs

11
推荐指数
2
解决办法
1万
查看次数

为使用 Blob 的 <embed> 或 <iframe> 设置默认另存为名称

我正在使用 PDFKit(无节点)在浏览器中生成 PDF,并通过 src 属性将其显示为 iframe 或嵌入标签。生成的 blob URL 是某种 UUID。所以整个页面看起来像:

<embed src="blob:http://localhost/eeaabb..."/>
Run Code Online (Sandbox Code Playgroud)

PDF 看起来不错,但是当我在 Chrome 中单击下载链接时,默认文件名是 UUID。在 FireFox 中,它只是“document.pdf”。

如果这是服务器生成的 PDF,我将使用 Content-Disposition 和/或操作 URL,因此它的最后一部分是我想要的名称,但这对于客户端生成的对象似乎是不可能的。

我尝试过的事情:

  • 通过元数据设置 PDF 标题。这有效但不影响文件名。
  • 操作嵌入标签标题属性。好像什么都没做
  • 更改页面标题。不影响文件。
  • 尝试在数据 url 中附加一些内容。只是阻止显示 PDF。
  • 通过 POST 上传 PDF,然后通过我可以控制 URL 的页面下载它。可以工作,但生成客户端 PDF 只需要将其上传到服务器似乎很疯狂。

有没有办法解决这个问题,以便我可以控制默认/建议的文件名?

html javascript pdf node-pdfkit

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

javascript ×2

angularjs ×1

html ×1

node-pdfkit ×1

pdf ×1