嘿我正试图让我的网站使用unlink()删除文件;功能。但是当我尝试它时会出现这个:
Warning: unlink() [function.unlink]: cURL does not allow unlinking in /home/nzcraftn/public_html/filenz/user/delete.php on line 18
Warning: Cannot modify header information - headers already sent by (output started at /home/nzcraftn/public_html/filenz/user/delete.php:18) in /home/nzcraftn/public_html/filenz/user/delete.php on line 27
我正在使用此代码:
if($_SESSION['user'] == $who) {
$delete = unlink("http://www.filenz.nzcraft.net/$dl");
if($delete) {
$_SESSION['message'] = "<div style='color: #00FF00'>File deleted!</div>";
header("Location: index.php");
mysql_query("DELETE FROM fileinfos WHERE(`id`='$id')") or die(mysql_error());
} else {
$_SESSION['message'] = "<div style='color: #FF0000'>Error while deleting!</div>";
header("Location: index.php");
}
}
如果你能告诉我是否有不同的方法来删除文件或帮助我解决当前的问题,我会非常感激。
感谢。
答案 0 :(得分:6)
虽然您可以通过HTTP delete files,但PHP的HTTP protocol wrapper不支持它。如果没有身份验证,它将是一个安全漏洞,因此大多数HTTP服务器不支持DELETE(除了WebDAV)。您应该执行以下操作之一:
答案 1 :(得分:3)
PHP documentation about wrappers表示HTTP包装器不支持取消链接。
您可以在文件系统中传递路径以取消链接,例如:
unlink("/path_to_directory/$dl");
答案 2 :(得分:2)
您尝试使用的协议不支持取消链接文件。有关详细信息,请参阅documentation here。
修复此问题取决于您的情况,您可以尝试使用支持文件操作的FTP等不同协议,或使用文件的本地路径。同样重要的是要注意,您需要适当的权限才能执行这些操作,如果是FTP,则需要用户名和密码。