我有以下腳本來獲取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