我创建了一个网站,它具有上传文件并将该文件上传到服务器的功能
我只是php的新手我下载xampp并运行我在本地机器上制作的这个网站。 我的网站是这样你上传一个文件然后该文件将被上传到服务器,但当我尝试unlink(),因为当我尝试删除文件名到数据库我也想删除服务器上的那张图片,而是我收到了错误,并说“权限被拒绝”。
问题:
我怎样才能获得使用unlink()的权限??
我只使用xampp
在我的localmachine上运行它答案 0 :(得分:12)
发生权限被拒绝错误是因为您尝试删除文件而没有足够/正确的权限来执行此操作。
要执行此操作,您必须使用超级用户帐户或与上传文件的用户相同。
您可以从命令行转到该目录,并检查为该文件设置的权限。
最简单的解决方案是以管理员/ 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 Manual, unlink(), Post 106952
我建议,首先要检查PHP手册(如果您的问题涉及PHP),只需转到包含您遇到问题的功能的页面,然后在浏览器中单击搜索CTRL+F
并输入,例如{ {1}},因此,在您的情况下,您会发现至少7个相关帖子,或者非常接近您所寻找的帖子。
答案 1 :(得分:4)
阅读此网址
我发现了这些信息in the comments of the function 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';