shell_exec无法转换pdftotext

Aja*_*yan 4 php linux pdf shell cakephp

我想将pdf文件转换为文本文件.当我通过终端运行命令它工作正常,但当试图通过PHP它执行它不工作.

我在谷歌的最后四个小时花了很多时间,但没有可用的解决方案.任何机构都能解决这个问题吗?

文件所有者 - 没人

shell_exec('/usr/bin/pdftotext /opt/lampp/htdocs/foldername/filename.pdf');
Run Code Online (Sandbox Code Playgroud)

谁能提供任何有用的解决方案?

我还尝试将usr文件夹所有权从root 更改为nobody,并对文件夹及其上下文提供777权限.

han*_*ank 5

您运行pdftotext的命令不正确.

应该有第二个参数告诉pdftotext写入特定文件或只是使用短划线" - "写入stdout,除非你真的希望程序创建一个文件名为pdf的文本文件(这将需要写入/opt/lampp/.../文件夹中的权限)

这至少是真实的 pdftotext version 0.12.4

"Pdftotext读取PDF文件,PDF文件,并写入文本文件,文本文件.如果未指定文本文件,pdftotext将file.pdf转换为file.txt.如果文本文件为' - ',则为文本被送到stdout."

所以,你的问题的解决方案只是在文件名之后添加一个短划线,如下所示:

<?php
$pdftext = shell_exec('/usr/bin/pdftotext /opt/lampp/htdocs/foldername/filename.pdf -');
echo $pdftext;
Run Code Online (Sandbox Code Playgroud)

如果二进制存在且允许PHP使用shell_exec并且您具有权限并且pdf文件存在并且您具有权限.