问题描述
使用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>
你期待的结果是什么?实际看到的错误信息又是什么?
文件名中无空格时可以正常打开,而有空格时无法打开文档
要求是文件名不可以更改
编辑:经过尝试,空格并不影响,真正导致问题的可能是%
使用
encodeURIComponent
函数对文件名进行转码。字符串
文件名 里面 有 空格.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