tags:

views:

48

answers:

2

I have the following script to take an uploaded PDF in PHP and call ImageMagik/Ghostscript to convert to images of specified size.

$tmp = exec("convert \"{$strPDF}\" -resize 500X500 \"{$strOut}\"", $results); 

However, this doesnt seem to work. No errors in the log file and no errors on screen. If I do the following,

$tmp = exec("convert \"{$strPDF}\" -resize 500X500 \"{$strOut}\"", $results); 
echo ("convert \"{$strPDF}\" -resize 500X500 \"{$strOut}\"");

And I paste the output into a command prompt it works fine (It takes around 6-10 seconds - My max_execution_time is at 600.

Any suggestions on why this might not be working?

This is Windows, IIS 7 and PHP5.

Edit: I'm having the same issue in both CentOS and Windows. Both have ImageMagik and Ghostscript installed.

Edit Edit the below still fails.

$handle = popen("convert \"{$strPDF}\" -resize 500X500 \"{$strOut}\"","r");
        echo "'$handle'; " . gettype($handle) . "\n";
        $read = fread($handle, 2096);
        echo $read;
        pclose($handle);
A: 

in php.ini maybe this function exec declare under

disable_functions

or if you run in

safe mode

This function is disabled when PHP is running in safe mode.

Haim Evgi
(safe_mode = Off and disable_functions = ) So doesnt look like it is that.
Pino
maybe permission on this file or this directory
Haim Evgi
doesnt seem to be.
Pino
A: 

Could it be an issue with your PATH variable ?

You might want to try and run

<?php
echo exec('cmd.exe /c echo %path%');
?>

both in the command line and from IIS and compare their outputs.

Archimedix
Might help if you try using absolute paths in this case (especially if even "cmd.exe" does not execute).
Archimedix