我正在寻找一种最佳方法,使用PHP检测给定的PDF是否被加密。我不需要解密或编辑它之类的操作。我的想法是,如果用户上传了加密的PDF文件,则简单地向他们提供错误消息。
大多数PHP的PDF解析库似乎都需要将整个PDF读入内存才能进行解析。对于我的目的来说,将整个PDF读入内存是不可接受的,因为我要处理的PDF可能有几十甚至上百兆字节大。
调用pdfinfo
程序并不是一个好选择(因为我不喜欢启动新进程),但如果没有其他选项,这就是解决方案。我对PDF的二进制结构了解得不够,甚至无法编写足够的解析器来检测这个,所以pdfinfo
可能是唯一的选择。
简而言之,有没有一种易于实现的纯PHP方法(没有C扩展)可以检测PDF是否被加密(也就是需要密码保护),而不需要将整个文件读入内存?