2011-03-29 30 views
0

我正在上传一个视频,该视频应该会生成三个屏幕截图缩略图。我有两个管理和前端运行相同的上传代码,但是当我从前端上传,仅产生拇指一些奇怪的原因不是从后端...PHP,exec问题......我如何确保执行正常?

我的目录结构 root/convert.php(这是通过exec调用运行文件) (以下两个文件都在用户端和管理分别高端运行上传文件)

root/upload.php 
root/siteadmin/modules/videos/edit.php 

我相信convert.php不是从管理员身份运行由于某种原因,这边。该命令是这样的:

$cmd = $cgi . $config['phppath']. ' ' .$config['BASE_DIR']. '/convert.php ' .$vdoname. ' ' .$vid. ' ' .$ff;echo $cmd;die; 
         exec($cmd. '>/dev/null &'); 

而且呼应了EXEC $cmd,我得到这个:

/usr/bin/php /home/testsite/public_html/dev/convert.php 1272.mp4 1272 /home/testsite/public_html/dev/video/1272.mp4 

如何确保convert.php正在运行?

编辑:好吧,现在我确定它没有从管理端执行,任何想法为什么?

回答

3

http://php.net/manual/en/function.exec.php

“return_var” - 如果return_var参数是与所述输出参数一起存在,那么,所执行的命令的返回状态将被写入到这个变量。

确定exec是否实际运行convert.php文件的另一种方式是在convert.php中添加一些调试信息(例如,在covert.php脚本启动时将某些内容写入文件)。

0

只是一个想法

当它成功运行,你可以在转换脚本打印“TRUE”。 不添加>/dev/null & 检查EXEC的返回值

$value = exec($cmd); 
if($value == 'TRUE') 
    // did run sucessfully 
} 
0

搭配chmod 755 convet.php

也确保convert.php的第一行是:

#!/usr/bin/php 

检查php cli可执行文件的完整路径。

另请确保convert.php las unix行结束(“\ n”)