Php 如何获得使用unlink()的权限?

Php 如何获得使用unlink()的权限?,php,Php,我做了一个网站,它有这个功能上传一个文件,该文件被上传到服务器 我只是一个php新手,我下载xampp并运行我在本地机器上创建的这个网站。 我的网站是这样的,你上传一个文件,然后该文件将被上传到服务器,但当我尝试取消链接()时,因为当我尝试删除数据库中的文件名时,我也想删除服务器上的pic,但我得到了一个错误,它说“权限被拒绝” 问题: 如何获得使用unlink()的许可 我仅使用xampp在本地计算机上运行此操作。发生权限拒绝错误,因为您试图删除一个文件,但没有足够/正确的权限执行此操作 要执

我做了一个网站,它有这个功能上传一个文件,该文件被上传到服务器

我只是一个php新手,我下载xampp并运行我在本地机器上创建的这个网站。 我的网站是这样的,你上传一个文件,然后该文件将被上传到服务器,但当我尝试取消链接()时,因为当我尝试删除数据库中的文件名时,我也想删除服务器上的pic,但我得到了一个错误,它说“权限被拒绝”

问题:
如何获得使用unlink()的许可


我仅使用xampp在本地计算机上运行此操作。发生权限拒绝错误,因为您试图删除一个文件,但没有足够/正确的权限执行此操作

要执行此操作,您必须使用超级用户帐户,或者是上载文件的同一用户

您可以从命令行转到该目录,并检查为该文件设置的权限

最简单的解决方案是以管理员/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手册(如果您的问题涉及PHP),只需转到您有问题的功能页面,在浏览器中单击search
CTRL+F
,然后输入,例如,
Windows
,因此,在您的情况下,你会发现至少有7篇与你所寻找的内容相关或非常接近的文章。

阅读此URL

我找到了这个信息

在Windows系统和Apache下,拒绝访问文件是取消文件链接的常见错误。若要删除文件,必须更改文件的owern。例如:

<?php 

chown($TempDirectory."/".$FileName,666); //Insert an Invalid UserId to set to Nobody Owern; 666 is my standard for "Nobody" 
unlink($TempDirectory."/".$FileName); 

?>
编辑1

尝试在路径中使用此选项:

$Path = '.'.DIRECTORY_SEPARATOR.'doc'.DIRECTORY_SEPARATOR.'stuffs'.DIRECTORY_SEPARATOR.'sample.docx';

因为你说了
unlink()
Function。如果你说你使用Windows,我会为你更新帖子。所以它与php.ini无关?也可能是一本不错的读物<代码>取消链接在Windows下对我很好。您不需要使用
exec
,这在大多数主机中都是禁用的。您的“Windows解决方案”是一个解决方案,通常
unlink
可以与Windows一起使用。将要投票表决,然后才看到。XAMPP!==Windows-1:
chown
对于无效用户来说,尝试所需的东西是一种奇怪的方式。规范的解决方案是使用
chmod
。如果您登录的帐户具有更改所有者的足够权限,则您是管理员,可以取消任何文件的链接。如果权限影响取消链接,则更改文件的读/写/执行模式,以便任何人都可以删除它:
chmod($Path,0666)。请注意前导的
0
,因为这是一个八进制值。当然,您必须以管理员身份登录才能进行此类更改。
$Path = '.'.DIRECTORY_SEPARATOR.'doc'.DIRECTORY_SEPARATOR.'stuffs'.DIRECTORY_SEPARATOR.'sample.docx';