- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我将包含以下代码的 php 文件的位置作为参数传递给 viewer.html
文件,它显示正确,但在 pdf 查看器中单击下载按钮时,文档名称是总是 document.pdf
。这带来了一个问题,因为有多少移动用户下载文件后才发现他们所有的文件都具有名称 document.pdf
并且他们(对于大多数移动浏览器)无法更改下载前的文件名。
我是否必须将一些任意参数传递给文件或重定向到带有附加文件名的自身?
<?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
的文件名。
关于php - Mozilla pdf.js,如何指定下载文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24457064/
有没有人能够构建静态链接的 NSS?我实际上只需要构建静态链接的 certutil 和 pk12util。我已经看到 Chromium 正在静态构建 NSS,他们甚至有一个补丁文件,但整个构建过程非常
我正在尝试使用下面的 css 和 html 代码在弹出窗口的底部应用空间,因为我只有 mozilla 浏览器有问题,我在弹出窗口的末尾没有获得空间。下面是我的代码我已经使用过,但我需要减少 chrom
我使用下面的行,这样当我单击“新建”按钮时,它将清空所有字段。使用 onClick="history.go(0)"在 IE 中有效,但在 Mozilla 中失败。 最佳答案 要清空所有字段,请使
我尝试在一个简单的 A-Frame WebVR 应用程序上禁用检查器,但没有成功。 尝试使用 JavaScript 来使用并禁用按键 Ctrl + Alt + I。但是,Inspector 仍在加载。
我正在做一个项目,现在正在测试中。需要使网站与所有现代兼容,并至少使它们与每个主要浏览器的 2 个旧版本兼容。 为此,我在 IE 中使用了 IE F12 工具,以切换到 IE 9、8、7 View 。
我在项目中将gulp与autoprefixer一起使用,并且必须像这样使用背景渐变: background: linear-gradient(#e98a00, #f5aa2f); 但输出是: back
如果我想限制电子邮件地址访问网站,使用 Persona 有哪些优势?我必须以相同的方式管理我服务器上的授权电子邮件地址吗?缺少什么? 最佳答案 在您的网站上使用 Persona 的两个主要优点是: 您
Thunderbird的过滤机制非常适合简单的事情。 但我想做类似的事情 (如果邮件包含xy或发件人为yz)并且状态已读取,请移至回收站 问题是,一个过滤器规则只能匹配任何(= OR)或所有(= AN
有一个奇怪的 webVR Mozilla A-Frame 问题 所以我在 a-curvedimage 标签中加载图像(里面有一些动画内容),如下所示: 我正在检查 chrome 中的网络
我觉得其中缺少了一些东西。这是: 嵌套函数和闭包 您可以在函数中嵌套函数。嵌套(内部)函数对其包含(外部)函数是私有(private)的。它还形成了一个封闭。闭包是一个表达式(通常是一个函数),它可以
JS BIN Attempt 尝试按照示例进行操作,但似乎不起作用。有点困惑,因为它是 Mozilla。 Mozilla 最佳答案 正如 @Xaerxess 提到的,当 DOM 准备好进行操作时,您需
我需要制作一个可以在每个页面和浏览器上运行的按钮,可以从文本区域复制输入。我正在尝试使用以下函数来做到这一点: selectElementContents: function(){ el
我需要一个粘性栏在一定的滚动后可见并固定。我打算使用滚动事件,然后我遇到了 Mozilla 页面,该页面建议使用 window.requestAnimationFrame 如下: var last_k
我希望我的元素具有多种颜色的清晰背景渐变。在 Chrome 上运行良好,但在 Firefox 上过渡时边缘模糊。 这里有一些例子: 火狐: Chrome : 如何让它在 Firefox 上运行? .f
为什么这是Webkit用户代理: Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/534.27+ (KHTML, like Gecko) Version
我正在尝试使用 JavaScript 创建一个游戏,但在此过程中我发现了 Firefox 中的一个错误。游戏很简单。您应该猜测 RGB 十六进制代码中的颜色是什么。有6个框,您应该单击该框,如果错误或
我在 Mozilla 和 Chrome 中都有一个扩展,在我的扩展中我调用了一个远程 JS 文件。 为了避免 Chrome 中的 CSP,我将规则添加到 manifest.json 并且我的文件通过
我找到了一种将我的 Chrome 扩展程序转换为模块的便捷方法(更易于维护等)。我是这样做的https://stackoverflow.com/a/53033388/9182284 (把backgro
我有以下代码来设置选择框的样式,它在 chrome 中完美运行,但在 mozilla fire fox 27.0 中运行不正常 .select-box { line-height: inhe
我没有询问变换原点。我问为什么动画在 mozilla 上不起作用 我一直在 Mozilla 上做一些动画 svg。我在 Chrome 中尝试过的动画效果非常好,但是当我在 mozilla 上测试时效果
我是一名优秀的程序员,十分优秀!