我想使用unlink删除php中的照片。我之前在其他服务器上使用过它,但这次它没有用。我已经使用绝对路径进行测试但仍然不起作用:
我用它作为:unlink('img1.jpg');
并且:
unlink('http://www.mysite.com/img1.jpg');
请有这种经历的人吗?
url不允许使用ulink功能
你能用它吗?
使用绝对路径更好,也更安全。但是你可以动态地获得这条路径。
例如。使用:
getcwd();
根据PHP脚本的位置,您的变量可能如下所示:
$deleteImage = getcwd() . 'img1.jpg';
unlink($deleteImage);
检查一下
bool unlink ( string $filename [, resource $context ] )
和
文件名 文件的路径。
所以它只需要一个字符串作为文件名。
确保使用您执行脚本的位置的路径访问该文件。这绝对路径不是问题,但您可能有一个具有相对路径的路径。
即使unlink()现在支持URL(see here),也不支持http://:http wrapper information
使用文件系统路径删除文件。
如果你在linux或unix中使用unlink,你也应该检查is_writable ( string $filename )的结果。如果函数返回false,你应该用fileperms ( string $filename )检查文件权限。
文件权限是网站空间的常见问题,例如如果您使用ftp用户每个ftp上传一个文件,并且该Web服务器以不同的用户身份运行。
如果这是问题,你可以做到
ch也d + rwd i mg1。 JPG
要么
chmod 777 img1.jpg
对其他用户的盛大写入(和删除)权限。
使用文件系统路径, 首先定义这样的路径:
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");
}
unlink不适用于unlink('http://www.mysite.com/img1.jpg');
使用代替unlink($_SERVER['DOCUMENT_ROOT'].'img1.jpg');
//获取当前目录或,
unlink($_SERVER['DOCUMENT_ROOT'].'dir_name/img1.jpg');
可能存在文件权限问题。请检查此问题。
提供从保存图像的文件夹到编写脚本的文件的相对路径。如果文件结构如下:
-your php file
-images
-1.jpg
then
unlink(images/1.jpg);
或者可能存在一些文件夹权限问题。您的文件是在服务器上还是在localhost上运行?如果它在服务器上,则为images文件夹授予755权限。
unlink($fileName);
对我失败了。
然后我尝试使用realpath($fileName)
函数作为unlink(realpath($fileName));
它工作。
只是发布它,以防任何人发现它有用。