对于非激励文件,php文件不可写
我有以下代码要写入文件对于非激励文件,php文件不可写,php,apache,apache2,file-permissions,fopen,Php,Apache,Apache2,File Permissions,Fopen,我有以下代码要写入文件 $ics_file = "/var/www/Untis/ICS/$ID.ics"; if (is_writable($ics_file)) { if (!$handle = fopen($ics_file, 'c')) { echo "Cannot open file ($ics_file)\n\n"; exit; } if (fwrite($handle, $ics_contents) === FALSE) { echo "
$ics_file = "/var/www/Untis/ICS/$ID.ics";
if (is_writable($ics_file)) {
if (!$handle = fopen($ics_file, 'c')) {
echo "Cannot open file ($ics_file)\n\n";
exit;
}
if (fwrite($handle, $ics_contents) === FALSE) {
echo "Cannot write to file ($ics_file)\n\n";
exit;
}
fclose($handle);
} else {
echo "The file <b>$ics_file</b> is not writable\n\n";
}
但是我仍然无法在那里书写。我得到的错误是:
文件/var/www/Untis/ICS/CTE152B.ICS不可写
我目前不知道为什么它不适用于新文件,如果我将目录修改为777,php应该能够在那里写入,对吗?显然,请检查
/var/www/Untis/ICS/
的权限。除此之外:您永远不需要0777
。在检查是否可写之前是否存在文件CTE152B.ics?如果没有文件,它将失败。如果您只想检查目录,您可以省略文件名。@JasonK Damm,很好,我检查的是文件而不是目录。谢谢你应该扔掉所有这些无用的东西,别管这些条件。只需使用fopen和fwrite。如果出现真正的错误,PHP将向您提供准确而全面的错误消息,而不是您不准确的自制标记。显然,请检查/var/www/Untis/ICS/
的权限。除此之外:您永远不需要0777
。在检查是否可写之前是否存在文件CTE152B.ics?如果没有文件,它将失败。如果您只想检查目录,您可以省略文件名。@JasonK Damm,很好,我检查的是文件而不是目录。谢谢你应该扔掉所有这些无用的东西,别管这些条件。只需使用fopen和fwrite。如果出现真正的错误,PHP会给你一个准确而全面的错误信息,而不是你不准确的自制评论
pi@raspberrypi /var/www/Untis $ ls -all
total 44
drwxrwxrwx 2 pi www-data 4096 Sep 27 20:49 ICS