首页 > 解决方案 > fopen() in PHP not creating or writing to txt file

问题描述

I get the following Warning:

Warning: fopen(Uploaded_Files/dataFile1.txt): failed to open stream: Permission denied in /opt/lampp/htdocs/PHP_Course_Practice/Superglobals/data_upload.php on line 17

The Code is:

<?php
$document_root = $_SERVER["DOCUMENT_ROOT"];
$fileRoot = $document_root . "/PHP_Course_Practice/Superglobals/Uploaded_Files/dataFile1.txt";
echo "Root: $document_root";
include($document_root . "/PHP_Course_Practice/Superglobals/Uploaded_Files/dataFile1.txt");
?>
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>

<?php
if (isset($_POST["submit"])) {
  $dataFile1 = fopen("Uploaded_Files/dataFile1.txt", "w");
  $dataFile1Txt = "My age is " . $_POST["age"] . ".";
  fwrite($dataFile1, $dataFile1Txt);
  echo $dataFile1;
  fclose($dataFile1);
}
?>

<form action="data_upload.php" method="post">
  <input type="text" name="age">
  <input type="submit" name="submit">
</form>

  </body>
</html>

标签: phpfopenpermission-deniedlampp

解决方案


您应该尝试检查要打开的文件或目录的权限。之后,您可以添加以递归方式读取和写入该目录的权限,如下所示

$ chmod -R 770 /path/toyour/directory

推荐阅读