使用pdf.js在线查看pdf文件,如何打开文件名带%百分号的文件?
问题描述
使用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个回答

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
。
这样在浏览器中打开时,有空格的地方不会被截断。
回复

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