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

时间:2017-11-03 14:32:47

标签: javascript string pdf 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>

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

下面的代码是pdf viewer 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;
}

根据我对代码的理解,我对输入的看法是对的。我哪里可能出错?

1 个答案:

答案 0 :(得分:1)

我找到了解决方案

<iframe src="pdf_viewer/web/viewer.html?file=/docs/resumes/1b763820-e262-4f76-8502-8872a3cb52e8?sample.pdf"></iframe>

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