我正在尝试使用从Web表单中选择的选项在我的Web服务器上创建一个文件。该文件永远不会被创建,我不断收到“无法打开文件”的消息。
<?php
if(isset($_POST["style"])) {
$boots = $_POST["style"];
}
$file = "bootsstyle";
if(!file_exists($file)) {
touch($file);
chmod($file, 0777);
}
$openFile = fopen($file, "w+") or die("Can't open file");
fwrite($openFile, $boots);
fclose($openFile);
?>
我在互联网上搜了一个小时,不知道我哪里出错了。我已经检查了目录中的权限,它们是0777。
答案 0 :(得分:1)
$boots = "your data";
$file = "bootsstyle";
if(!file_exists($file)) {
touch($file);
chmod($file, 0777);
}
$openFile = fopen($file, "w+") or die("Can't open file");
fwrite($openFile, $boots);
fclose($openFile);
$myfile=fopen($file, "r");
echo fread($myfile,filesize($file));
fclose($myfile);
答案 1 :(得分:0)
问题在于您尝试创建文件的目录的权限。 php脚本所在的目录必须可由名为 www-data 的用户组写入。有两种方法可以解决这个问题。
您只需将目录权限更改为777.为此,请打开终端并导航到php脚本所在的目录。现在执行命令
sudo chmod 777 ./
打开终端并导航到包含php脚本的目录。现在,执行命令
sudo chown www-data ./ && sudo chmod 774 ./
您可以从https://linode.com/docs/tools-reference/linux-users-and-groups/了解有关Linux权限以及774和777之间差异的更多信息
注意:
如果文件不存在,以w +模式打开文件会创建该文件。所以你不必碰它。
注意:
上面的代码在运行LAMP服务器的kali linux 2017.3.2上进行了测试。