我正在尝试将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文件存在并且您具有权限。

09-28 05:08