<p>pdf.js依靠URL包含'pdf'扩展名</p>

创建于 2014-02-12  ·  13评论  ·  资料来源: mozilla/pdf.js

如果服务器不提供Content-Disposition标头,则pdf.js依赖于URL来包含'pdf'扩展名。 但是URL是定位符,而不是名称。
重现步骤:

mv web/compressed.tracemonkey-pldi-09.pdf web/compressed.tracemonkey-pldi-09
sed -i 's/compressed.tracemonkey-pldi-09.pdf/compressed.tracemonkey-pldi-09/g' web/viewer.js
firefox web/viewer.html

现在点击下载。 系统会为您提供一个“ document.pdf”文件。 名称应该更有意义。
当我在apache网络服务器上忽略pdf扩展名时,也会发生该错误。

拟议解决方案:
使用pdf的标题。 (作为该viewer.js代码)。 在显示类似http://en.wikipedia.org/wiki/Internet_media_type的HTML页面时,firefox还将标题用于File->“ save page as”功能。

并非每个html网页都以.html结尾。 而不是通过扩展名,文档的类型由其MIME类型指定。
但是,大多数pdf文件具有pdf扩展名,并且大多数在线pdf在url中也具有易于保存的名称。
我不知道新的检索方法是否应该覆盖url检索,或者是它的后备。

另请参阅#3455。

1-core 5-good-beginner-bug

所有13条评论

@timvandermeij

这事有进一步更新吗? 它已经开放了两年多了。 因为我的文件参数是一个服务器调用,它会发回一个pdf文件,所以pdf查看器无法检测到该文件的名称,因为它似乎正在寻找.pdf扩展名,因此我坚持使用“ document.pdf下载时为“”,查看时为窗口栏中的“ untitled.pdf”。

如果我们还可以在URI中指定“标题”以及“文件”(例如... / pdf-viewer / viewer.html?file =“ ...”&title =“ ... ”

我知道当前正在#7554中完成工作以支持Content-Disposition标头,这是解决此问题的一种方法。 但是,我确实同意, document.pdf并非最佳名称,我们可能需要改进获取(文件)名称的功能。 欢迎为此打补丁,因此我将其标记为一个不错的初学者错误,因为它应该不太容易实现。

@timvandermeij非常感谢,我相信支持Content-Disposition实际上可以解决我的问题。

我同意,在浏览代码时,我发现仅为文件名添加另一个URL参数应该不会太困难。 在接下来的几天里,我会尝试的,谢谢。

欢迎为此打补丁,因此我将其标记为一个不错的初学者错误,因为它应该不太容易实现。

@timvandermeij请记住,在PR#4956中,我们故意避免让各种哈希参数影响查看器(除非启用了调试,请参见https://github.com/mozilla/pdf.js/wiki/Debugging-pdf.js) 。
因此,我认为我们不应该使用散列参数来指定title

特别是考虑到它是非标准的(在http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_open_parameters.pdf的上下文中),并与Content-Disposition PR#7554中的

抱歉,我应该更清楚了。 我的意思是欢迎使用补丁来改进从URL确定文件名的功能。 我认为我们可以在那里做得更好,而不仅仅是依靠文件扩展名。 我同意我们不应该添加更多的哈希参数。

此问题的状态如何? 这还开放吗?

此问题的状态如何? 这还开放吗?

@anirudhrb仍然打开,尝试在#7554上实现它,您想为此

@yurydelendik是的,我想贡献自己的力量。 公关对该问题有何期待?

@anirudhrb ,您可能只是以上述PR为基础,因为它的数据远程处理有些正确-我们希望使用单元测试能够获得小的补丁。 我们不需要规范的Content-Disposition解析,但是足以获取文件名。

@yurydelendik我已经开始从事此工作。 这是我为开源项目做贡献的第一次尝试。 我需要一些时间来熟悉代码库。 :)

@yurydelendik@timvandermeij如果大家都还可以的话,我可以提出这个问题吗?

上面有一个拉取请求,看起来像是正确的方向,但是没有更多活动了。 如果您有兴趣修复该问题,那听起来不错。 我会问原始作者是否仍在计划中。

已在#9379中修复。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

jigskpatel picture jigskpatel  ·  3评论

dmisdm picture dmisdm  ·  3评论

zerr0s picture zerr0s  ·  3评论

timvandermeij picture timvandermeij  ·  4评论

anggikolo11 picture anggikolo11  ·  3评论