Mozilla pdf.js,如何指定下载文件名?

克雷格·拉弗蒂(Craig Lafferty)

我将包含以下代码的php文件的位置作为参数传递给该viewer.html文件,并且文件正确显示,但是在pdf查看器中单击“下载”按钮时,文档名称始终为document.pdf这造成了一个问题,因为有多少移动用户将下载文件,只是为了发现他们的所有文件都具有名称document.pdf,并且(对于大多数移动浏览器而言)他们在下载之前不能更改文件名。

我是否必须将一些任意参数传递给文件,或者使用附加的文件名重定向到self?

<?php
$content = "a binary representation of my pdf";
header("Content-type: application/pdf");
header('Content-Transfer-Encoding: binary');
header('Content-Disposition: attachment; filename="someFile.pdf"');
echo $content;
?>
坎伯恩

我也遇到过同样的问题。从pdf.js的viewer.js来源中:

function getPDFFileNameFromURL(url) {
  var reURI = /^(?:([^:]+:)?\/\/[^\/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/;
  //            SCHEME      HOST         1.PATH  2.QUERY   3.REF
  // Pattern to get last matching NAME.pdf
  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) {
      // URL-encoded %2Fpath%2Fto%2Ffile.pdf should be file.pdf
      try {
        suggestedFilename =
          reFilename.exec(decodeURIComponent(suggestedFilename))[0];
      } catch(e) { // Possible (extremely rare) errors:
        // URIError "Malformed URI", e.g. for "%AA.pdf"
        // TypeError "null has no properties", e.g. for "%2F.pdf"
      }
    }
  }
  return suggestedFilename || 'document.pdf';
}

因此,majic需要通过正则reURI表达式来自URL

您需要做的是:

http://domain.com/path/to/Named.pdf
http://domain.com/path/to/your/api?fileId=123&saveName=Named.pdf

Named.pdf由于上面的正则表达式代码,以上每一个都将导致另存为文件名

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Mozilla pdf.js,如何指定下载文件名?

来自分类Dev

Chrome嵌入式PDF下载文件名

来自分类Dev

使用mozilla pdf.js从Android应用程序上的远程Internet来源读取pdf文件

来自分类Dev

Mozilla PDF在Samsung设备上非常慢

来自分类Dev

Mozilla PDF在Samsung设备上非常慢

来自分类Dev

如何在不知道文件名的情况下指定下载文件夹?

来自分类Dev

如何停止Mozilla遥测?

来自分类Dev

Mozilla附加SDK文档下载

来自分类Dev

对象pdf类型未在mozilla和chrome中呈现

来自分类Dev

对象pdf类型未在mozilla和chrome中呈现

来自分类Dev

无法从pdf.js查看器下载文件

来自分类Dev

如何防止加载Mozilla插件?

来自分类Dev

org.mozilla.javascript.EvaluatorException:非法字符(/ [文件名] .js#1)JSCover

来自分类Dev

PHP Laravel如何获取原始pdf文件名并使其可下载

来自分类Dev

如何使用 talend 下载文件(图像、pdf、......)

来自分类Dev

使用ServiceStack HttpResult下载文件:如何为下载的内容指定文件名?

来自分类Dev

在Mozilla firefox附件中下载信息

来自分类Dev

在mozilla firefox中重试下载失败

来自分类Dev

在Mozilla 24.0中附加文件时出错

来自分类Dev

在Mozilla 24.0中附加文件时出错

来自分类Dev

Mozilla Firefox中的Wpad文件问题

来自分类Dev

Mozilla扩展js模块中的“文档”?

来自分类Dev

Mozilla存根安装程序如何工作?

来自分类Dev

如何使用Mozilla SDK分离内容脚本?

来自分类Dev

如何从终端打开Mozilla Developer Edition

来自分类Dev

如何备份Mozilla Firefox布局配置?

来自分类Dev

如何发送到Mozilla Firefox的Kindle?

来自分类Dev

在 Mozilla 上如何选择表单外的元素

来自分类Dev

如何使用终端安装 Mozilla Thunderbird?

Related 相关文章

热门标签

归档