【发布时间】: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