我最初发布了一个非常不同的问题,因为我不知道为什么我不能取消链接(删除)服务器已经创建的文件;我发现了更多信息,因此觉得改写我的问题是合适的。
PHP 脚本通过 fopen 创建一个文件,并为用户提供一个下载链接。下载后,该脚本旨在通过取消链接删除文件。我似乎无法让它工作。我检查了权限,这就是文件和目录的样子:
drwxrwxr-x+ 55 root _www 1870 Jan 31 09:49 .
-rw-r--r-- 1 _www _www 1362 Jan 30 12:46 file.csv
这告诉我 _www 组具有目录的读取、写入和执行权限以及文件的读取和写入权限(更不用说 _www 用户拥有该文件!)。当然,_www 是服务器。因此,如果服务器有足够的权限来读取和写入目录并且对它创建和拥有的文件有足够的权限,那么它为什么不删除该文件呢?我在脚本中没有收到任何错误说取消链接失败,但是在运行脚本后文件仍然存在。似乎没有必要,但 _www 是否出于某种原因也需要具有执行权限?我对此表示怀疑。
另外,这里是代码。对我来说似乎很好,但我可能会疯:
echo "<form action='' method='post'><input type='submit' name='delete' value='Delete File'></form></div>";
if (isset($_POST['delete'])) {
unlink("file.csv") or die("Could not delete file! O, noes!");
}