无法写入文件

问题描述 投票:0回答:1

关于我目前使用PHP的问题,我会得到你的帮助

这是代码:

<?php

$ics_file   = 'schedule.ics';

if (is_writable($ics_file)) {
    if (!$handle = fopen($ics_file, 'w')) {
        echo "Cannot open file ($ics_file)\n\n";
        exit;
    }

    # Write $ics_contents to opened file
    if (fwrite($handle, "foobar") === FALSE) {
        echo "Cannot write to file ($ics_file)\n\n";
        exit;
    }

    # echo "Success, wrote to <b>schedule.ics</b><br>\n\n";
    fclose($handle);
} else {
    echo "The file <b>$ics_file</b> is not writable\n\n";
}
?>

在我的网页上,我总是收到“文件schedule.ics不可写”,因此无法访问文件。你能不能给我一个正确方向的暗示?

php filesystems
1个回答
1
投票
  1. 如果文件不存在,is_writable会导致您的错误。你可以简单地省略这个条件并尝试写入文件并检查fopen的结果: if ($handle = fopen($ics_file, 'w')) { if (fwrite($handle, $ics_contents) === FALSE) echo "Cannot write to file ($ics_file)\n\n"; else { # echo "Success, wrote to <b>schedule.ics</b><br>\n\n"; } fclose($handle); exit; } else { echo "Cannot write to file ($ics_file)\n\n"; exit; }
  2. 如果以前的解决方案没有帮助,请检查目录/文件权限。文件访问取决于服务器配置。尝试自己创建文件,并设置777的权限(用于测试)。然后脚本应该有权写入它。
  3. 您正在将整个文件内容读取到内存中。在这种情况下,如果您不需要将文件放在磁盘上,则可以使用类似PHP - send file to user的内容将内容发送到客户端。
© www.soinside.com 2019 - 2024. All rights reserved.