在 PHP 7 中使用 unlink() 删除视频文件
Deleting video files using unlink() in PHP 7
我在使用 php unlink()
功能从文件夹中删除视频文件时遇到问题,图像正在删除,但在尝试删除视频时显示
unlink(file_path) : permission denied.
您(运行 您的脚本,通过 CLI 或网络服务器)需要对文件所在目录的写入权限。所以访问该文件是不够的。
您的图像目录对于网络服务器或 cli 将是不同的并且是可写的。
chmod("your/video/dir/path",0777);
在取消脚本中的视频链接之前尝试使用上面的代码。
编辑:看起来您正在使用 Windows。不幸的是,我的答案是针对类 Unix 操作系统(所以 Linux,MacOS)。您可以尝试为 Win8+ 安装 Bash 扩展,但我仍然不确定这是否可行。但是,我会保留我的答案,以防有类似问题的人在这里寻找答案。
通过 PHP 更改权限在某些情况下可能有效,但并非总是如此,因为如果您没有删除文件的权限,您可能也没有更改它们的权限。
最好的解决方案是创建一个目录,您可以在其中保存 PHP 具有完全访问权限的文件。我们称它为 dirname
。创建目录后,将其所有者和组更改为与您的 Web 服务器用户名相对应的名称(如果您使用的是 Apache,则为 "www-data"),例如:chown www-data:www-data dirname
.
完成后,更改文件夹的权限。我的建议是744
,这样可以确保拥有它的用户拥有所有权限,而其他人只能阅读它。为此,请执行以下命令:chmod -R 777 dirname
.
现在您应该可以直接从 PHP 对给定目录中的文件执行任何您想要的操作。
我在使用 php unlink()
功能从文件夹中删除视频文件时遇到问题,图像正在删除,但在尝试删除视频时显示
unlink(file_path) : permission denied.
您(运行 您的脚本,通过 CLI 或网络服务器)需要对文件所在目录的写入权限。所以访问该文件是不够的。
您的图像目录对于网络服务器或 cli 将是不同的并且是可写的。
chmod("your/video/dir/path",0777);
在取消脚本中的视频链接之前尝试使用上面的代码。
编辑:看起来您正在使用 Windows。不幸的是,我的答案是针对类 Unix 操作系统(所以 Linux,MacOS)。您可以尝试为 Win8+ 安装 Bash 扩展,但我仍然不确定这是否可行。但是,我会保留我的答案,以防有类似问题的人在这里寻找答案。
通过 PHP 更改权限在某些情况下可能有效,但并非总是如此,因为如果您没有删除文件的权限,您可能也没有更改它们的权限。
最好的解决方案是创建一个目录,您可以在其中保存 PHP 具有完全访问权限的文件。我们称它为 dirname
。创建目录后,将其所有者和组更改为与您的 Web 服务器用户名相对应的名称(如果您使用的是 Apache,则为 "www-data"),例如:chown www-data:www-data dirname
.
完成后,更改文件夹的权限。我的建议是744
,这样可以确保拥有它的用户拥有所有权限,而其他人只能阅读它。为此,请执行以下命令:chmod -R 777 dirname
.
现在您应该可以直接从 PHP 对给定目录中的文件执行任何您想要的操作。