我创建了一个站点,它具有上传文件的功能,并且该文件被上传到服务器
我只是 php 的新手,我下载了 xampp,然后运行我在本地机器上创建的这个站点。我的网站是这样的,您上传一个文件,然后该文件将上传到服务器,但是当我尝试 unlink() 时,因为当我尝试将文件名删除到数据库时,我也想删除服务器上的该图片,而是我收到一个错误,上面写着"Permission denied"。
问题:
如何获得使用 unlink(); 的权限?
我只使用 xampp 在我的本地机器上运行它
我创建了一个站点,它具有上传文件的功能,并且该文件被上传到服务器
我只是 php 的新手,我下载了 xampp,然后运行我在本地机器上创建的这个站点。我的网站是这样的,您上传一个文件,然后该文件将上传到服务器,但是当我尝试 unlink() 时,因为当我尝试将文件名删除到数据库时,我也想删除服务器上的该图片,而是我收到一个错误,上面写着"Permission denied"。
问题:
如何获得使用 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 Manual, unlink(), Post 106952
我建议,总是首先检查 PHP 手册(如果您的问题涉及 PHP),只需转到您遇到问题的功能页面,然后单击CTRL+F
搜索浏览器并输入,例如,,Windows
因此,在您的情况下,您会找到至少 7 个相关帖子或非常接近您正在寻找的帖子。
阅读此网址
在 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';