帮助朋友解决他遇到的问题。他的网站正在使用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将文件视为可写,这应该不是问题,我能正确阅读吗?
答案 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);
}
}