如何取消与父目录的子目录的文件链接?的PHP

时间:2019-07-19 12:08:42

标签: php

我想断开图像文件与父目录的子目录的链接。 我在网站(mysite / project)下的Director文件夹中开发此项目,但是当我完成该项目时,我将移至另一个托管包。 我需要使用哪个代码才能在所有目录中稳定运行?

我收到此错误:

  

警告:取消链接(../../images/urunler/deneme-urun.jpg):/home/admin/public_html/eticaret/admin/includes/updateproduct.php中第120行上没有这样的文件或目录< / p>

我的文件夹结构:

click here to see my folder structure

$delete = unlink("../../images/products/".$img);

3 个答案:

答案 0 :(得分:1)

在运行unlink()命令之前,您可以检查文件的存在以消除此类错误

$path = "../../images/products/".$img;
if (file_exists(path)) {   
    unlink($path)                        
}

更好的是使用完整目录路径(绝对路径)。例如,让您的项目结构为 enter image description here

并且您的未链接代码在script.php中,那么您可以通过以下方式获得完整的绝对路径

$path = __DIR__ . "/../../images/products/{$img}";
if (file_exists(path)) {   
    unlink($path)                        
}

答案 1 :(得分:0)

  1. 因为脚本是从“ public_html / eticaret / admin / includes / ”运行的,所以您需要..遍历3个目录以获取 public_html 是图像和脚本的共同祖先文件夹

  2. 根据您的目录图像,图像位于 public_html / myproject / images / products / 中,并且根据注释中详述的错误,您尝试从 images / urunler中删除/ 我假设 urunler 是实际的项目名称。

如果包含图像的文件夹不可用,请尝试$delete = unlink("../../../images/urunler/".$img); 如果容器文件夹是产品,请尝试$delete = unlink("../../../images/products/".$img);

如果失败,请尝试使用绝对路径而不是相对路径。

答案 2 :(得分:0)

感谢所有答案。 我在这个话题上有毛病。 图像名称在我的数据库中为xxx.jpg,但在文件夹中为xxx.jpeg。 但是有一种有趣的情况:如果您使用.jpeg格式的图片,则可以在浏览器中以.jpg格式打开图片。 我已经尝试了很多方法来解决上述错误,但是我发现了。 我现在正在使用Chrome浏览器。

所以我解决了我的问题:)