我创建了一个网站,它具有上传文件的功能,该文件被上传到服务器
我只是php的新手,我下载了xampp,并在本地机器上运行这个网站。我的网站是这样的,你上传一个文件,然后该文件将被上传到服务器,但当我尝试取消链接()时,因为当我试图将文件名删除到数据库时,我也想删除服务器上的图片,但我遇到了一个错误,它说"权限被拒绝"。
问题:
如何获得使用unlink();的权限;?
我只使用xamp-
由于您试图删除一个没有足够/正确权限的文件,因此会发生拒绝权限错误。
若要执行此操作,您必须使用超级用户帐户,或者是上载文件的同一用户。
您可以从命令行转到该目录,并检查为该文件设置的权限。
最简单的解决方案是以administrator/root身份登录并删除该文件。
以下是另一项工作:
// define if we under Windows
$tmp = dirname(__FILE__);
if (strpos($tmp, '/', 0)!==false) {
define('WINDOWS_SERVER', false);
} else {
define('WINDOWS_SERVER', true);
}
$deleteError = 0;
if (!WINDOWS_SERVER) {
if (!unlink($fileName)) {
$deleteError = 1;
}
} else {
$lines = array();
exec("DEL /F/Q '"$fileName'"", $lines, $deleteError);
}
if ($deleteError) {
echo 'file delete error';
}
还有更多:PHP手册,unlink(),Post106952
我建议,总是首先查看PHP手册(如果你的问题涉及PHP),只需转到有问题的功能的页面,在浏览器中单击搜索CTRL+F
,然后输入,例如,Windows
,结果,在你的情况下,你会找到至少7个与你想要的内容相关或非常接近的帖子。
阅读此URL
如何使用Unlink()函数
我在函数unlink()的评论中找到了这些信息
在Windows系统和Apache下,拒绝访问文件是解除文件链接的常见错误。若要删除文件,您必须更改文件的权限。一个例子:
<?php
chown($TempDirectory."/".$FileName,666); //Insert an Invalid UserId to set to Nobody Owern; 666 is my standard for "Nobody"
unlink($TempDirectory."/".$FileName);
?>
所以试试这样的东西:
$Path = './doc/stuffs/sample.docx';
chown($Path, 666);
if ( unlink($Path) )
echo "success";
else
echo "fail";
编辑1
尝试在路径中使用此:
$Path = '.'.DIRECTORY_SEPARATOR.'doc'.DIRECTORY_SEPARATOR.'stuffs'.DIRECTORY_SEPARATOR.'sample.docx';