我有以下脚本来获取PHP上传的PDF并调用ImageMagik/Ghostscript转换为指定大小的图像。PHP Exec未运行,但命令正常工作!
$tmp = exec("convert \"{$strPDF}\" -resize 500X500 \"{$strOut}\"", $results);
但是,这似乎并不奏效。日志文件中没有错误,屏幕上没有错误。如果我这样做,
$tmp = exec("convert \"{$strPDF}\" -resize 500X500 \"{$strOut}\"", $results);
echo ("convert \"{$strPDF}\" -resize 500X500 \"{$strOut}\"");
我粘贴输出到命令提示它工作正常(大约需要6-10秒 - 我的max_execution_time为600
任何建议,为什么这可能不工作
这是由于Windows,IIS 7和PHP5
编辑:。我有两个的CentOS和Windows同样的问题,双方都ImageMagik和Ghostscript安装
。编辑下面的编辑仍然失败。
$handle = popen("convert \"{$strPDF}\" -resize 500X500 \"{$strOut}\"","r");
echo "'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);
通过将变量直接放在命令行中,您正在寻求麻烦。 ** CLI注入**如果不是比* SQL注入*更危险,则是危险的。使用['escapeshellarg()'](http://php.net/escapeshellarg)。 – 2010-09-06 14:47:16
@Andrew评论指出,谢谢。 – LiamB 2010-09-06 15:22:31
尝试使用popen而不是exec并读取输出(使用fgets) – 2010-09-06 15:24:51