【问题标题】:right path of image being referred to in exec() in phpphp中exec()中引用的图像的正确路径
【发布时间】:2010-09-01 10:17:27
【问题描述】:

我正在尝试使用以下脚本来计算 pdf 文件中的 pdf 页数。

   $filename = $_ENV{'HOMEDIR'}."/www/path/to/pdf/file";
$cmd = "/usr/local/nf/bin/identify -density 12 -format '%p' '$filename' ";

$out = array();

exec($cmd,$out,$error);

foreach($out as $f=>$v)
{
    echo "$f = $v ";
}

但是我没有得到任何输出。我认为这是一个与路径相关的问题。如何在命令行命令中引用路径?请任何帮助指导!

谢谢 拉胡尔

【问题讨论】:

  • (-1) 那么,$filename 是否是有效路径? identify 的路径是否正确?我们不知道,也找不到。

标签: php exec absolute-path imagick


【解决方案1】:

您是否检查过 PHP 是否报告了任何错误?如果 PHP 代码中出现任何错误?您是否尝试过检测您的代码以检测潜在问题(例如 print var_export(file_exists($filename), true);?您是否检查过 exec(...) 的返回值?exec() 设置的变量 $error 的内容...)?您是否验证了可执行文件 (identify) 的路径是否正确?对于网络服务器而言,它可能与您通过 ssh / telnet / 控制台访问系统时不同。您是否检查过 'identify' 是否可执行webserver uid?你检查过 pdf 文件是否可以被 webserver uid 读取吗?

【讨论】:

    【解决方案2】:

    首先,您应该确保 pdf 文件的路径存在,如下所示:

    $filename = "...";
    
    // Brute force, maybe you could use some other "nicer" error handling
    if(!file_exists($filename)) die('File does not exist!');
    

    然后,我会检查是否

    • PHP 具有执行 Imagemagick 命令的访问权限(对 Imagemagick 目录/可执行文件的访问权限)
    • 允许Imagemagick读取文件并写入指定路径(目录/文件访问权限)
    • 您的 Imagemagick 安装实际上可以识别 PDF 文件(我在本地机器 (ImageMagick 6.1.7) 上使用命令行进行了尝试,但 IM 因此错误而失败:identify: Postscript delegate failed ...) - 可能 Imagemagick 需要 Ghostscript 才能处理 PDF 文件

    【讨论】:

      猜你喜欢
      • 2018-11-08
      • 2020-09-15
      • 1970-01-01
      • 1970-01-01
      • 2017-07-30
      • 2011-07-26
      • 1970-01-01
      • 1970-01-01
      • 2014-12-17
      相关资源
      最近更新 更多