无法写入文件

时间:2014-06-13 18:15:15

标签: php filesystems

我会就我目前使用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";
}
?>

在我的网页上,我总是收到&#34;文件schedule.ics不可写&#34;所以它无法访问文件。你能不能给我一个正确方向的暗示?

1 个答案:

答案 0 :(得分: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之类的内容将内容发送到客户端。