这是代码
if(file_exists('1.mp4')){
echo "File Exists";
//Performing some operations on file
}
else{
echo "File Does Not Exists";
}
现在,问题是上传文件时满足"如果"条件。
文件上传正在进行中,然后我正在对该文件执行一些操作。
但是由于上传/复制/创建正在进行中,该文件不完整,这就是问题所在。
file_exists后如何等待,直到文件成功上传/复制/创建。然后对它进行操作?
首先,除非它是最后一个可能的选项,否则我不建议这样做。知道文件何时准备就绪比猜测复制操作是否已完成更好。
即使文件不再增长也不意味着内容实际上有效;也许复制操作已中止,部分文件仍然存在;如果没有校验和,您将不知道该文件是否真的可以使用。
function waitFor($file, $delay = 1)
{
if (file_exists($file)) {
$current_size = filesize($file);
while (true) {
sleep($delay);
clearstatcache(false, $file); // requires >= 5.3
$new_size = filesize($file);
if ($new_size == $current_size) {
break;
}
$current_size = $new_size;
}
return $current_size;
} else {
return false;
}
}
waitFor('/path/to/file', 2);
// consider file is ready if size not changed for two seconds