pdf.js 下载为 document.pdf 而不是文件名

Har*_*sti 1 javascript pdf string url pdf.js

我在我的应用程序中使用 pdf.js 库。除了当我尝试下载文档时,它集成得非常好。每次我下载特定文件时,它都会下载为 document.pdf

我有很多文件要下载,这造成了一些混乱。

我的代码如下:

<iframe src="pdf_viewer/web/viewer.html?file=/docs/resumes/1b763820-e262-4f76-8502-8872a3cb52e8&filename=sample.pdf"></iframe>
Run Code Online (Sandbox Code Playgroud)

我的第一个参数是文件 ID,第二个参数是下载文档的名称。

下面的代码是 pdf 查看器viewer.js 文件中存在的代码

function getPDFFileNameFromURL(url) {
  var defaultFilename = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'document.pdf';
  console.log(url);
  console.log(defaultFilename);

  if (isDataSchema(url)) {
    console.warn('getPDFFileNameFromURL: ' + 'ignoring "data:" URL for performance reasons.');
    return defaultFilename;
  }
  var reURI = /^(?:(?:[^:]+:)?\/\/[^\/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/;
  var reFilename = /[^\/?#=]+\.pdf\b(?!.*\.pdf\b)/i;
  var splitURI = reURI.exec(url);
  var suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]);
  if (suggestedFilename) {
    suggestedFilename = suggestedFilename[0];
    if (suggestedFilename.indexOf('%') !== -1) {
      try {
        suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0];
      } catch (ex) {}
    }
  }
  return suggestedFilename || defaultFilename;
}
Run Code Online (Sandbox Code Playgroud)

根据我对代码的理解,我对输入所做的事情是正确的。我哪里可能出错了?

Har*_*sti 5

我找到了解决办法

<iframe src="pdf_viewer/web/viewer.html?file=/docs/resumes/1b763820-e262-4f76-8502-8872a3cb52e8?sample.pdf"></iframe>
Run Code Online (Sandbox Code Playgroud)

这需要网址中的输入,现在我可以从网址中提取文件名