我正在上传视频,该视频应生成三个屏幕截图缩略图。我在管理员和前端都运行相同的上传代码,但由于一些奇怪的原因,拇指仅在我从前端上传时生成,而不是从后端上传...
我的目录结构
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?
编辑:好的,现在我确定它没有从管理员端执行,任何想法为什么?
答案 0 :(得分:3)
http://php.net/manual/en/function.exec.php
" return_var" - 如果return_var参数与输出参数一起出现,则执行命令的返回状态将写入此变量。
另一种确定exec是否实际运行convert.php文件的方法,在convert.php中添加一些调试信息(例如,当covert.php脚本启动时将某些内容写入文件)。
答案 1 :(得分:0)
只是一个想法
成功运行后,您可以在转换脚本中打印“TRUE”。
不要添加>/dev/null &
检查exec的返回值
$value = exec($cmd);
if($value == 'TRUE')
// did run sucessfully
}
答案 2 :(得分:0)
chmod 755 convet.php
您还要确保convert.php的第一行是:
#!/usr/bin/php
检查php cli可执行文件的完整路径。
还要确保convert.php las unix line ending(“\ n”)