我正在尝试将pdf
文件转换为文本文件。当我通过终端运行命令时,它可以正常工作,但是当尝试通过PHP
执行命令时,则无法正常工作。
从最近四个小时开始,我一直处于这种情况,但在Google上花费了大量时间,但没有可用的解决方案。谁能解决这个问题?
文件所有者-没有人
shell_exec('/usr/bin/pdftotext /opt/lampp/htdocs/foldername/filename.pdf');
谁能提供任何有用的解决方案?
我还尝试将
usr
文件夹所有权从根更改为nobody,并提供对文件夹及其上下文的777权限。 最佳答案
您运行pdftotext的命令不正确。
应该有第二个参数告诉pdftotext写入特定文件,或者仅使用破折号“-”写入stdout,除非您实际上希望程序创建文件名为pdf的文本文件(这需要写/opt/lampp/.../文件夹中的权限)
至少对于pdftotext version 0.12.4
如此
因此,您的问题的解决方案将只是在文件名后添加一个破折号,如下所示:
<?php
$pdftext = shell_exec('/usr/bin/pdftotext /opt/lampp/htdocs/foldername/filename.pdf -');
echo $pdftext;
前提是二进制文件存在并且允许PHP使用shell_exec并且您具有权限,并且pdf文件存在并且您具有权限。