【问题标题】:Error with file_put_contentsfile_put_contents 错误
【发布时间】:2014-07-03 05:31:10
【问题描述】:

使用此代码时:

<?php
    $email = $_POST['email'];
    $file = "file.html";

    file_put_contents($file, $email . PHP_EOL, FILE_APPEND);

    include $file;
?>

我收到此错误:

PHP Warning:  file_put_contents(file.html): failed to open stream: Permission denied in G:\PleskVhosts\mydomain.com\test.php on line 5

这是什么意思,我该如何解决?

【问题讨论】:

  • 这意味着您无权写入file.html,和/或无权将文件添加到文件所在的目录。
  • 这意味着您在尝试写入文件时被拒绝权限
  • 我拥有该域并且我拥有该文件。为什么我会被拒绝许可?我该如何解决?
  • 与您的硬盘讨论它。通常chownchmod 是有说服力的论据。

标签: php file file-upload error-handling


【解决方案1】:

你可以用这个 sn-p 测试一下。

if (file_exists($file)) {
  echo "File exists." . PHP_EOL;
}

if (is_writable($file)) {
  echo "File is writable." . PHP_EOL;
}

if (is_readable($file)) {
  echo "File is readable." . PHP_EOL;
}

【讨论】:

  • 它说“文件存在。文件可读。”如何让它可写?
  • 当您在 Windows 上时,@mjwatts 给出的答案不适用于您。我不确定如何让它在 Windows 中可写,但尝试右键单击该文件,看看是否可以设置一些权限。
  • 不确定这是否适用于你,但你可以试试这个wikihow.com/Change-File-Permissions-on-Windows-7
【解决方案2】:

您是否拥有域、文件或它所在的计算机并不重要 - 事实是尝试访问该文件的用户没有权限。

在终端中在该目录中运行ls -la,然后您将看到该文件的所有者和组,检查它们是否正确。

如果有疑问,请运行chmod 777 your_file.html,这将使其可读、可写等。

【讨论】:

  • 什么是终端?那是我的网络浏览器吗?我如何运行这些东西?
  • 我错过了您使用 Windows 的事实,所以我无能为力。也许尝试使用 ftp 程序在您的主机上查看文件,这应该能够向您显示文件的权限和所有者?
猜你喜欢
  • 1970-01-01
  • 2016-04-15
  • 2016-09-18
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 2017-05-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多