【问题标题】:is_file($file) returns false on IISis_file($file) 在 IIS 上返回 false
【发布时间】:2014-01-22 09:02:36
【问题描述】:

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

php 版本 5.2.x 窗口服务器 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 上报告的错误

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

【问题讨论】:

  • echo $_FILES['myfile']['tmp_name'] 说什么?
  • 更改目录权限已经过测试。管理员和完全权限是否也存在问题
  • C:\temp\php7A0.tmp ....... 临时目录拥有所有权限以及其他目标目录
  • 试试 (is_file($file) && is_uploaded_file($file))
  • is_file 返回 false 但 is_uploaded_file 返回 true 并且 (is_file($file) && is_uploaded_file($file)) 返回 false

标签: php iis


【解决方案1】:

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

嗯……你可以找出错误的原因,然后自己修复它。

说真的。这是一个解决方案。

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

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

【讨论】:

  • 文件每次都成功上传,但 is_file 和 file_exist 返回 false ......但有些尝试返回 true ......但同样的文件再次返回 false
  • plz,如果任何人在任何一天找到解决方案....在这里更新它...它非常需要
  • @Sachin9 - 你真的读过我在回答中写的内容吗?如果你真的很绝望......自己解决问题。
  • 我没有找到解决问题的方法@Stephen,这就是我在这里寻求帮助的原因。
  • @Sachin9 - 所以你已经下载了 PHP 源代码?阅读它以了解这些功能是如何实现的?建了吗?使用调试器运行它?我不是说“找到”解决办法。我是说 develop 修复。 '因为我怀疑如果你等待有人为你做这项工作,你可能会等待很长时间
猜你喜欢
  • 1970-01-01
  • 2014-04-26
  • 2012-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-31
  • 1970-01-01
相关资源
最近更新 更多