【问题标题】:ImageMagick convert with PHP exec pathImageMagick 使用 PHP 执行路径转换
【发布时间】:2014-07-25 09:01:01
【问题描述】:

我已在本地 Windows 7 PC 上成功安装 ImageMagick。并测试转换 C:\xampp\htdocs\test\images\a.jpg C:\xampp\htdocs\test\images\b.jpg

但是当我尝试从名为 C:\xampp\htdocs\test\index.php 的 PHP 文件中执行此操作时 用代码

<?php
    exec("C:\Program Files\ImageMagick-6.8.9-Q16\convert C:\xampp\htdocs\test\images\a.jpg C:\xampp\htdocs\test\images\b.jpg", $output, $return);
?>

它不起作用。 a.jpg 文件存在。我正在使用浏览器运行 index.php 文件,路径为http://localhost/test/index.php

$output 为空,$return 为 1。

但是当我使用

<?php
    exec("C:\Program Files\ImageMagick-6.8.9-Q16\convert", $output, $return);
?>

我得到了 Imagemagick 版本的输出...... 如果我在命令提示符下运行命令“convert”,则输出相同。 我在 Windows 7 中使用 xamp。 我搜索了很多,但那里提到的问题不是我遇到的。

因为当我在 PHP exec 中只使用“convert”时,我得到了输出。

所以无法理解实际问题是什么。

【问题讨论】:

    标签: imagemagick


    【解决方案1】:

    几个小时以来,我一直在努力解决这个问题。

    exec("C:\Program Files\ImageMagick-6.8.9-Q16\convert C:\xampp\htdocs\test\images\a.jpg C:\xampp\htdocs\test\images\b.jpg", $output, $return);
    

    这段代码应该可以正常工作,只有一个问题,尝试运行“C:\Program Files\ImageMagick-6.8.9-Q16\convert C:\xampp\htdocs\test\images\a.jpg C:\xampp\ htdocs\test\images\b.jpg" 不带引号 在命令提示符下,您会得到 'C:\Program' 无法识别。 需要引用转换exe的路径。

    试试这个exec('"C:\Program Files\ImageMagick-6.8.9-Q16\convert" C:\xampp\htdocs\test\images\a.jpg C:\xampp\htdocs\test\images\b.jpg', $output, $return);

    它应该可以工作。

    干杯!

    【讨论】:

      【解决方案2】:

      运行PHP的进程是否有权限修改文件系统?

      【讨论】:

      • 是的。我在C:\xampp\htdocs\test\images test.txt目录下使用了php fwrite,并且成功创建了。还有is_writeable(DIR.'/images');当我执行 index.php 时返回 true。
      【解决方案3】:

      我知道这个问题已经得到解答,但昨晚我用头撞墙 5 个小时试图做到这一点。

      我认为值得注意的是,如果您的任何路径中有空格(可执行文件、输入文件和输出文件),那么它们需要单独引用:

      exec('"C:\Program Files\ImageMagick-6.9.1-Q16\convert" "C:\Documents\Web Dev\test.jpg" -resize 50x50 "C:\Documents\Web Dev\output.jpg"', $output, $return);

      我希望这有助于挽救他人 5 小时的生命。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-10
        • 2015-06-23
        • 1970-01-01
        • 1970-01-01
        • 2012-03-02
        • 1970-01-01
        相关资源
        最近更新 更多