首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从代理服务器提供文件时使用#page=n在特定页面打开PDF

从代理服务器提供文件时使用#page=n在特定页面打开PDF
EN

Stack Overflow用户
提问于 2013-05-13 22:15:18
回答 1查看 3.3K关注 0票数 1

这看起来应该很简单。我有一组文件必须存储在webroot之外,并且有一个访问脚本来调用它们。我有时还需要告诉必须通过此代理脚本调用的PDF才能在特定页面打开。脚本的相关部分如下:

代码语言:javascript
运行
复制
  header('Content-type: application/pdf');

  header('Content-Length: ' . filesize($file));

  header('Content-Disposition: attachment; filename="'.$file_name.'"');

  readfile($file);

$file_name只是文件的basename(),$file是文件的路径,后面加上#page=2、#page=10或其他任何东西。如果我删除了hashtag部分,脚本就可以正常工作,并且PDF打开时没有任何错误。当标签部分在那里时,所有的程序都告诉我PDF已经损坏,无法打开。我似乎在这里或谷歌上找不到任何关于我需要做什么的东西。我是否需要设置一个额外的头部来模拟hash标签?使用exec()来调用一些命令行代码,而不是使用readfile()?

任何见解都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-14 13:01:48

您必须将#page=2 (或您想要打开的任何页面)附加到浏览器中的URL,而不是代理脚本中的文件名。

由于文件名为myFile.pdf,您当前尝试从不存在的文件系统中打开文件myFile.pdf#page=2

另一方面,在特定页面上打开PDF文件的功能是在浏览器或其PDF插件中实现的。因此,必须通过URL将打开哪个页面的信息提供给浏览器。所以你应该这样调用你的代理脚本:http://example.com/proxy.php?myFile.php#page=2

更新:

如果要下载文件并在每次从用户的本地文件系统打开文件时在特定页面打开它,则必须编辑(或重新创建)PDF文件。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16524260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档