php fopen返回false但文件是可读/可写的

时间:2010-09-08 11:59:18

标签: php

有一个可读写的文件,但fopen返回false ...

if(is_readable($file)) echo 'readable ';
if(is_writable($file)) echo 'writable ';
$fp = fopen($file, 'a+');
var_dump($fp);

结果是

readable writable bool(false)

有什么想法吗?

确定它必须是权限,但在文件上尝试777并得到相同的结果。

2 个答案:

答案 0 :(得分:16)

让我们尝试获取更多信息 什么

$file = 'p:\muh';

error_reporting(E_ALL);
ini_set('display_errors', true);
echo 'phpversion: ', phpversion(), "\n";
echo 'uname: ', php_uname("s r"), "\n"; // name/release of the operating system
echo 'sapi: ', php_sapi(), "\n";

echo $file, file_exists($file) ? ' exists' : ' does not exist', "\n";
echo $file, is_readable($file) ? ' is readable' : ' is NOT readable', "\n";
echo $file, is_writable($file) ? ' is writable' : ' is NOT writable', "\n";

$fp = fopen($file, 'a+');
if ( !$fp ) {
  echo 'last error: ';
  var_dump(error_get_last());
}
else {
  echo "ok.\n";
}

打印?

另见:http://docs.php.net/error_get_last

答案 1 :(得分:0)

我遇到了同样的问题。就我而言,只需确保文件是:

C:\route\to\file\filename.EXTENSION

就我而言,我只是缺少 .PDF 扩展名,因此它将文件名解释为另一个子目录。