is_file($ file)在IIS上返回false

时间:2014-01-22 09:02:36

标签: php iis

尝试通过php上传iis服务器上的图像 即使文件存在,is_file()和file_exist()函数也会返回false。 有时它也会返回true(10次中有1次)

php version 5.2.x. Windows服务器IIS

<?php
    if(isset($_POST['submit']))
    {
        echo 'is_file:' . (is_file($_FILES['myfile']['tmp_name']) ? 'true' : 'false');
        echo "<br><br><br>";
        echo 'file_exists:' . (file_exists($_FILES['myfile']['tmp_name']) ? 'true' : 'false');
    }

?>

<html>
    <head></head>
    <body>
        <form action="<?php echo $_SERVER['PHP_SELF'] ?>"enctype="multipart/form-data" method="post">
            <input type="file" name="myfile" />
            <input type="submit" name=submit />
        </form>
    </body>
</html>

在php.net https://bugs.php.net/bug.php?id=37118

上报告了错误

任何人都可以提供除升级或更改语言或服务器之外的解决方案

1 个答案:

答案 0 :(得分:0)

  

任何人都可以提供除升级或更改语言或服务器之外的解决方案

嗯......你可以找出错误的原因,并自己解决。

严重。这是一个解决方案。

这个(明显的)错误自2006年以来一直存在于PHP问题跟踪器中。当然某人可以找出真正的问题所在。

(鉴于您描述的症状,似乎有些东西正在缓存文件元数据,而is_filefile_exists测试正在查看陈旧的信息。这是一个理论......)