Php File_exists无法正常工作

时间:2014-11-18 12:36:09

标签: php

**我在这个项目中使用xampp。

大家都对我正在建立的库存有一个小问题。当我从数据库中删除一个对象时,我想删除我链接到它的图片。我通过给图像提供与产品相同的ID来做到这一点,所以当我删除项目时,我可以通过其ID查找要删除的图像。

问题是当我删除对象时,图像未被删除。 File_exists一直返回false。任何帮助都会很棒。

if(isset($_GET["yesdelete"])){

$id_to_delete = $_GET["yesdelete"];
$sql = mysqli_query($link,"DELETE FROM products WHERE id = $id_to_delete") or die (mysqli_error());

$pictodelete=("../Images/$id_to_delete.jpg");

if(file_exists($pictodelete)){
unlink($pictodelete);
}

header("location: inventory_list.php");
exit();
}

4 个答案:

答案 0 :(得分:1)

尝试使用DIRECTORY_SEPARATOR代替' /'作为分隔符。 Windows对Linux文件系统路径(反斜杠)使用不同的分隔符。

我还建议重新检查文件名,有时会出现某种拼写错误或区分大小写的问题。

答案 1 :(得分:0)

使用,文件的确切物理路径。

为此,请使用以下内容:

$_SERVER['DOCUMENT_ROOT'];

使用它,获取确切的路径:

e.g。

$pictodelete = $_SERVER['DOCUMENT_ROOT'] . "/Images/" . $id_to_delete.".jpg";

希望这有效。

答案 2 :(得分:0)

我找到了答案,我要感谢所有帮助解决问题的人。我认为我的文件名预先有一个空间导致它找不到文件,但我只是php的初学者,所以我可能错了,但这解决了我的问题。

$id_delete = preg_replace('#[^0-9]#i','',$_GET["yesdelete"]); <-------- added this

$pictodelete = ("../Images/$id_delete.jpg");
if(file_exists($pictodelete)){
unlink($pictodelete);
}

答案 3 :(得分:0)

我遇到了类似的情况,问题是我的服务器正在将我的文件名转换为大写字母,所以我做了

if(file_exists(strtolower(trim($myimagefile)))==true)

并且有效