项目背景
这是一个做文件打印的项目,因为打印是根据文件的页数来算价格的,所以我们要在用户上传完成后获取文件的页数。因为是PHP项目,我们这里选用的是PdfParser来完成这个操作。
问题描述
实际运营中,总会出现个别文件上传进度100%,但是界面一直转圈圈,经分析发现是在获取PDF文件页数环节出了问题,报错如下:Secured pdf file are currently not supported。
解决过程
俗话说,站在巨人肩膀上可以看的更远。所以,遇到问题,当然是全网一顿猛搜。确实遇到有个别难兄难弟遇到了我这个问题,但是没有解决方案。
问题弄清楚了,就好说,大概意思是说因为这个文件有某些权限限制,所以抛出了异常。但是,我们仅仅只是要个页码而已,所以异常是不是也要分情况呢,最后我们找到抛出异常的地方对它进行了处理,我们是2.2版本,报错文件为:vendor/smalot/pdfparser/src/Smalot/PdfParser/Parser.php:103。
这里有两种解决方案,第一根据异常的不同,区别对待,必竟我们只要页数;第二,就是直接流氓操作,把这个异常屏蔽掉得了。