2013-10-19 42 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

相关问题