PHP - 检查文件是否已完成编码

时间:2011-09-17 00:45:49

标签: php uploadify

我有一个.bat文件,它编码服务器端的mp3文件,我还有一个php函数检查文件是否存在,然后将其添加为HTML列表项。我遇到的问题 - 有时mp3文件没有在服务器端完成编码。如果有人在编码过程中尝试下载文件,则会导致浏览器崩溃。

在列出项目之前,我可以检查以确保文件大小已完成吗?

这是检查文件是否存在的函数:

function ListDir($dir_handle,$path) {
    global $listing;
    echo "<ul>";
    while (false !== ($file = readdir($dir_handle))) {
      $dir =$path . $file;
      if(is_dir($dir) && $file != '.' && $file !='..' && filesize($file) {
            $handle = @opendir($dir) or die("Unable to open file $file");
            echo "<li>".$dir;
            ListDir($handle, $dir);
            echo "</li>";
      } elseif($file != '.' && $file !='..' && $file !='.htaccess') {
          $new_string = ereg_replace("[^A-Za-z.]", "", $file);
            echo '<li><a href="'. str_replace('wav', 'mp3', $dir) .'">'.str_replace('wav', 'mp3',  $new_string).'</a></li>';
      }
    }
    echo "</ul>";
    closedir($dir_handle);
}

2 个答案:

答案 0 :(得分:4)

让蝙蝠编码,然后移动到“完成”状态的最终位置,如果它不存在 - 它没有完成。这类似于drew010的答案,除了它使用相同的文件,从工作目录到生产目录。

这也阻止了任何资源可以访问它,直到它准备就绪,这可能会导致问题。

答案 1 :(得分:1)

你真的不知道最终的文件大小,所以让你的bat文件创建一个像mp3filename.work之类的文件,然后让bat文件在编码完成后删除它,所以如果.work文件不存在,然后编码就完成了。

相关问题