PHP Unlink不工作

时间:2013-09-26 11:19:37

标签: php unlink

我正在尝试使用unlink删除php中的照片。我之前在其他服务器上使用过它,但这次它没有用。我已经使用绝对路径进行测试但仍然不起作用:

我用它作为:     取消关联( 'img1.jpg');

和:

unlink('http://www.mysite.com/img1.jpg');

请有这种经历的人吗?

7 个答案:

答案 0 :(得分:6)

url不允许使用ulink功能

你可以用这个

吗?

使用绝对路径更好,也更安全。但是你可以动态地获得这条路径。

E.g。使用:

getcwd();

根据PHP脚本的位置,您的变量可能如下所示:

$deleteImage =  getcwd() . 'img1.jpg';

unlink($deleteImage);

检查这个

bool unlink ( string $filename [, resource $context ] )

  

文件名
      文件的路径。

所以将字符串作为文件名。

确保使用您执行脚本的位置的路径访问该文件。绝对路径不是问题,但您可能有一个具有相对路径的路径。

答案 1 :(得分:2)

即使unlink()现在支持网址(see here),也不支持http://:http wrapper information

使用文件系统路径删除文件。

答案 2 :(得分:2)

如果你在linux或unix中使用unlink,你也应该检查is_writable ( string $filename )的结果 如果函数返回false,则应使用fileperms ( string $filename )检查文件权限。

文件权限是网站空间的常见问题,例如:如果您使用ftp用户每个ftp上传一个文件,并且该网络服务器以不同的用户身份运行。

如果这是问题,你可以做到

  

chmod o + rwd img1.jpg

  

chmod 777 img1.jpg

对其他用户的盛大写入(和删除)权限。

答案 3 :(得分:1)

使用文件系统路径,
首先定义这样的路径:

define("WEB_ROOT",substr(dirname(__FILE__),0,strlen(dirname(__FILE__))-3));

并且检查文件是否存在,如果存在则取消链接文件。

$filename=WEB_ROOT."img1.jpg";
if(file_exists($filename))
{
$img=unlink(WEB_ROOT."img1.jpg");
}

答案 4 :(得分:0)

取消关联不适用于unlink('http://www.mysite.com/img1.jpg');

改为使用    unlink($_SERVER['DOCUMENT_ROOT'].'img1.jpg'); //获取当前目录 或者,

unlink($_SERVER['DOCUMENT_ROOT'].'dir_name/img1.jpg');

可能存在文件权限问题。请检查此内容。

答案 5 :(得分:0)

提供从保存图像的文件夹到编写脚本的文件的相对路径。 如果文件结构如下:

-your php file
-images
  -1.jpg

then 

unlink(images/1.jpg);

或者可能存在某些文件夹权限问题。您的文件是在服务器上还是在localhost上运行?如果它在服务器上,则为图像文件夹授予755权限。

答案 6 :(得分:0)

unlink($fileName);对我来说失败。
然后,我尝试使用realpath($fileName)函数作为unlink(realpath($fileName));起作用。

只需发布它,以防万一有人觉得有用。

php unlink