虽然文件检查为可写,但PHP fopen不起作用

时间:2013-04-21 08:11:15

标签: php fopen

帮助朋友解决他遇到的问题。他的网站正在使用fopen函数打开文件并保存对其的更改,但fopen失败并显示“Permission Denied”错误。该文件位于远程服务器上,权限似乎正确。

他正在使用的代码是......

if (isset($_POST['save'])) {
$filepath = "string.txt";
    if (file_exists($filepath)) {
        $file = fopen($filepath, "w+");
        fwrite($file, $_POST['save']);
        fclose($file);
    }
}

我在这里使用VolkerK的代码php fopen returns false but file is readable/writable来确定读/写权限并获得以下内容。

  

PHP版本:5.4.9
  Uname:Windows NT
  {File}存在
  {File}可读   {File}可写   上一个错误:array(4){[“type'] => int(2)[”message“] => string(131”fopen({file}):无法打开流:权限被拒绝。

起初我认为这是一个文件权限问题,但我认为如果PHP将文件视为可写,这应该不是问题,我能正确阅读吗?

1 个答案:

答案 0 :(得分:0)

尝试FTP并到达那里。不过要为FTP连接正确设置上下文选项。

感谢您指出我正确的方向。

if (isset($_POST['save'])) {
//Setup FTP connection
$ftp = "ftp://user:password@example.com/filepath/filename.txt";
//Set FTP Options
$stream_options = array('ftp' => array('overwrite' => true));
$stream_context = stream_context_create($stream_options);
//Open file and write changes
if (file_exists($ftp)) {
    $file = fopen($ftp, "w", 0 , $stream_context);
    fwrite($file, $_POST['save']);
    fclose($file);
    }
}