11

我正在尝试使用取消链接删除 php 中的照片。我之前在其他服务器上使用过它,但这次它不起作用。我已使用绝对路径进行测试,但仍然无法正常工作:

我将其用作: unlink('img1.jpg');

和 :

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

请问有这样经历的人吗?

4

7 回答 7

7

url 不允许在 ulink 函数中使用

你能用这个吗

使用绝对路径更好,也更安全。但是您可以动态获取此路径。

例如使用:

getcwd();

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

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

unlink($deleteImage);

检查这个

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

文件名 文件
的路径。

所以它只需要一个字符串作为文件名。

确保从执行脚本的位置可以访问该文件。这不是绝对路径的问题,但您可能会遇到相对路径的问题。

于 2013-09-26T11:21:40.663 回答
3

尽管 unlink() 现在支持 URL(见这里),但不支持 http://:http wrapper information

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

于 2013-09-26T11:24:29.743 回答
2

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

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

如果这是问题,你必须这样做

chmod o+rwd img1.jpg

或者

chmod 777 img1.jpg

授予其他用户的大写(和删除)权限。

于 2013-09-26T11:48:10.983 回答
2

unlink($fileName);对我来说失败了。
然后我尝试使用该realpath($fileName)功能unlink(realpath($fileName));

只是贴出来,以防万一有人觉得它有用。

php取消链接

于 2019-04-26T11:40:33.943 回答
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");
}
于 2013-09-26T11:30:51.240 回答
0

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

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

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

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

于 2013-09-26T11:26:43.113 回答
0

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

-your php file
-images
  -1.jpg

then 

unlink(images/1.jpg);

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

于 2013-09-26T11:27:43.930 回答