PDF.js Viewer部署到服务器后无法通过URL打开PDF文件求助
解决PDF.js Viewer部署到Web服务器后的URL配置问题
核心问题分析
本地XAMPP能正常运行,部署到服务器后异常,结合你提供的URL代码和示例,问题大概率出在文件名编码不规范或服务器路径/权限上。
具体修复方案
1. 修正URL的文件名编码逻辑
你的PHP代码直接输出文件名,没有对特殊字符(比如重音符号É、Ó)做标准URL编码,这会导致服务器解析路径出错。修改代码如下:
<td><a class="hrefborder" href="/web/viewer.html?file=/kotta/<?php echo urlencode($row["elsokotta"]); ?>">Open</a></td>
- 用
urlencode()函数自动处理文件名的特殊字符,替代手动编码的方式,确保兼容性。 - 直接写
/kotta/即可,浏览器会自动将其编码为%2Fkotta%2F,和你原来的写法效果一致,但可读性更强。
2. 验证文件路径与权限
- 先测试直接访问PDF文件的URL是否能打开:比如访问
http://example.com/kotta/Éneklem A Te Jóságodat - A.pdf,如果无法打开,说明:- 文件未正确上传到服务器的
kotta文件夹下; - 文件/文件夹权限不足:将PDF文件权限设为
644,kotta文件夹权限设为755,确保Web服务器能读取文件。
- 文件未正确上传到服务器的
3. 检查PDF.js的路径配置
如果上述步骤无效,打开web/viewer.html,确认里面的资源路径(比如viewer.js、build/下的文件)都是相对路径,没有硬编码本地的绝对路径。本地XAMPP的路径结构和服务器一致的话,这一步通常不会出问题,但可以快速验证。
测试示例
修改后的URL示例应该为:
http://example.com/web/viewer.html?file=/kotta/%C3%89neklem%20A%20Te%20J%C3%B3s%C3%A1godat%20-%20A.pdf
和你原来的示例一致,但编码逻辑更可靠,避免因文件名变化导致的编码错误。
内容的提问来源于stack exchange,提问作者Benedek Szabó
相关产品推荐
相关产品推荐

