使用pdf.js在线查看pdf文件,如何打开文件名带%百分号的文件?

作者站长头像
站长
· 阅读数 20

问题描述

使用pdf.js在线查看pdf文件时,无法打开文件名带有%百分号的文件

问题出现的环境背景及自己尝试过哪些方法

pdfjs-3.5.141-dist

相关代码

<script >
    function openPdf() {
        window.location.href='/js/pdfjs/web/viewer.html?file=/file/子目录/文件名 里面 有 空格和%百分号%.pdf'
    }
</script>

<body>
    <img th:src="@{/images/image.png}" onclick="openPdf()"/>
</body>

你期待的结果是什么?实际看到的错误信息又是什么?

文件名中无空格时可以正常打开,而有空格时无法打开文档要求是文件名不可以更改

编辑:经过尝试,空格并不影响,真正导致问题的可能是%

回复
1个回答
avatar
test
2024-07-04

使用 encodeURIComponent 函数对文件名进行转码。

    function openPdf() {
        window.location.href = '/js/pdfjs/web/viewer.html?file=/file/子目录/' + encodeURIComponent('文件名 里面 有 空格.pdf');
    }

字符串 文件名 里面 有 空格.pdf 转码后:%E6%96%87%E4%BB%B6%E5%90%8D%20%E9%87%8C%E9%9D%A2%20%E6%9C%89%20%E7%A9%BA%E6%A0%BC.pdf

这样在浏览器中打开时,有空格的地方不会被截断。

参考:encodeURIComponent() - JavaScript | MDN

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容