【问题标题】:php file_exists while file is being copied or created or uploadingphp file_exists 在文件被复制、创建或上传时
【发布时间】:2013-09-13 17:10:11
【问题描述】:

这是代码

if(file_exists('1.mp4')){
echo "File Exists";
//Performing some operations on file
}
else{
    echo "File Does Not Exists";
}

现在,问题是上传文件时满足“if”条件。
正在上传文件,然后我正在对该文件执行一些操作。
但由于正在进行上传/复制/创建,该文件不完整,这就是问题所在。

如何在 file_exists 之后等待文件成功上传/复制/创建。然后对其进行操作?

【问题讨论】:

    标签: php file file-upload file-exists


    【解决方案1】:

    首先,除非这是最后可能的选择,否则我不会推荐这个。知道文件何时准备好比猜测复制操作是否完成要好。

    即使文件不再增长并不意味着内容实际上是有效的;也许复制操作被中止并且部分文件仍然存在;如果没有校验和,您将不知道该文件是否可以实际使用。

    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
    

    【讨论】:

      猜你喜欢
      • 2011-08-16
      • 2020-11-12
      • 2010-10-22
      • 2011-06-23
      • 1970-01-01
      • 2016-12-31
      • 2011-06-05
      • 2012-09-23
      • 2014-11-10
      相关资源
      最近更新 更多