2013-10-19 38 views
0

我想上傳圖像並將圖像作爲參數讀取到我的程序中。
上傳部分是OK。exec()可以在hello.exe上工作(只是打印「Hello world!」),但它不能在我的程序上運行(ImageAesthetic2013.exe)
這是我的代碼
php exec()可以在wamp中工作,但不能讀取圖像

if ($_FILES["file"]["error"] > 0){ 
echo "Error: " . $_FILES["file"]["error"]; 
}else{ 
echo "File name: " . $_FILES["file"]["name"]."<br/>"; 
echo "File type: " . $_FILES["file"]["type"]."<br/>"; 
echo "File size: " . ($_FILES["file"]["size"]/1024)." Kb<br />"; 
echo "temp name: " . $_FILES["file"]["tmp_name"]; 
move_uploaded_file($_FILES["file"]["tmp_name"],"upload/".$_FILES["file"]["name"]); 
} 

exec("C:\\wamp\\www\\ImageAesthetic2013.exe C:\\wamp\\www\\Lena.jpg", $output,$return_var); 
exec("C:\\wamp\\www\\hello.exe", $out); 
var_dump($out); 
var_dump($output); 
print_r($return_var); 

回答

0

這是確定的。謝謝! 但這是發佈構建問題。 將文件放入WWW文件夾可以解決問題!

0

由於PHP手冊筆記,

在Windows中,EXEC()發出內部呼叫 「CMD/C your_command」。這意味着你的命令必須遵循它包括一組額外的周圍充滿命令報價由cmd.exe的強加的規則:

http://ss64.com/nt/cmd.html

當前PHP版本考慮到這一點,並自動添加引號,但是老版本沒有。

顯然,更改是在PHP/5.3.0中完成的,但未反向移植到5.2.x,因爲它是向後不兼容的更改。綜上所述:

  • 在PHP/5.2及以上,你必須圍繞完整的命令加上參數在雙引號
  • 在PHP/5.3和更大的,你不必(如果你這樣做,你的腳本將打破)
+0

我不明白你的意思。我使用php5.4.12,那麼你能舉例嗎? – user2851385

相關問題