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

时间:2012-08-27 19:21:04

标签: php

我创建了一个网站,它具有上传文件并将该文件上传到服务器的功能

我只是php的新手我下载xampp并运行我在本地机器上制作的这个网站。 我的网站是这样你上传一个文件然后该文件将被上传到服务器,但当我尝试unlink(),因为当我尝试删除文件名到数据库我也想删除服务器上的那张图片,而是我收到了错误,并说“权限被拒绝”

问题:
我怎样才能获得使用unlink()的权限??

我只使用xampp

在我的localmachine上运行它

2 个答案:

答案 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)

阅读此网址

How to use Unlink() function

我发现了这些信息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';