Php 创建后无法立即访问使用exec创建的文件?
嗨 我在php中使用exec执行一个命令,它将在临时文件夹中创建一个.png文件 创建后,我试图打开该文件,读取内容并处理它们 但我最终发现文件无法读取错误 我认为exec执行和创建文件所花费的时间是问题的原因 但我不知道如何修复它?我尝试了sleep(),但它使我的脚本运行缓慢Php 创建后无法立即访问使用exec创建的文件?,php,file,exec,Php,File,Exec,嗨 我在php中使用exec执行一个命令,它将在临时文件夹中创建一个.png文件 创建后,我试图打开该文件,读取内容并处理它们 但我最终发现文件无法读取错误 我认为exec执行和创建文件所花费的时间是问题的原因 但我不知道如何修复它?我尝试了sleep(),但它使我的脚本运行缓慢 <?php error_reporting(E_ALL); extension_loaded('ffmpeg') or die('Error in loading ffmpeg');
<?php
error_reporting(E_ALL);
extension_loaded('ffmpeg') or die('Error in loading ffmpeg');
//db connection codes
$max_width = 120;
$max_height = 72;
$path ="/path/";
$qry="select id, input_file, output_file from videos where thumbnail='' or thumbnail is null;";
$res=mysql_query($qry);
$cnt = 1;
while($row = mysql_fetch_array($res,MYSQL_ASSOC))
{
$outfile = $row[output_file];
$imgname = $cnt.".png";
$srcfile = "/path/".$outfile;
echo "####$srcfile####";
exec("ffmpeg -i ".$srcfile." -r 1 -ss 00:00:05 -f image2 -s 120x72 ".$path.$imgname);
$nname = "./temp/".$imgname;
echo "nname===== $nname";
$fileo = fopen($nname,"rb");
if($fileo)
{
$imgData = addslashes(file_get_contents($nname));
..
...
....
}
else
echo "Could not open<br><br>"; // this stmt is printed while executing
$cnt = $cnt + 1:
}
?>
您正在$path.$imgname
创建一个文件,然后您尝试读取“/temp/$imgname”
,我假设这是两个完全不同的文件。我在发布时用名称“path”替换了原始路径,仅此而已。我确信路径是正确的,并且创建的文件具有我与filezilla检查过的适当权限。为什么不执行echo$path.$imgfile.==./temp/“$imgname代码>并查看它们是否真的相同?