从php中的存储文件夹中删除图像

时间:2014-08-19 10:57:27

标签: php mysql

我想在删除数据库时从存储文件夹中删除图像。

图像文件将从数据库中删除,但无法从服务器存储文件夹中删除。

图像存储在http://url.com/foldername/files/newsletter

以下是我使用的代码..

<?php

$id = intval($_REQUEST['id']);

include 'db/connection.php';



$sql1 = mysql_query("select * from tablename where id=$id");
$results=mysql_fetch_array($sql1);

if($results["file"]!="") {  
    $image=$results["file"];
    unlink("../files/newsletter/".$image);
    }



$sql = "delete from tablename where id=$id";

$result = @mysql_query($sql);


if ($result){
    echo json_encode(array('success'=>true));
} else {
    echo json_encode(array('msg'=>'Some errors occured.'));
}

?>

Plz帮助解决..谢谢

2 个答案:

答案 0 :(得分:0)

尝试使用您的代码将文档根添加到类似下面的代码中。

$imageWithPath = $_SERVER['DOCUMENT_ROOT']."/files/newsletter/".$image;
@unlink($imageWithPath);

答案 1 :(得分:0)

你能打印出你的$ results [&#34; file&#34;]值是什么并检查。

你正在使用mysql_fetch_array它应该在while循环中

$sql1 = mysql_query("select * from tablename where id=$id");
while($row = mysql_fetch_array($sql1)){
    $image = $row["file"];
    //make sure below path is correct.
    $image_path = $_SERVER['DOCUMENT_ROOT'].'/foldername/files/newsletter/'.$image;
    echo $image_path;//you can compare if the path is correct or not
    //Also check if file exists here
    if(file_exists(image_path)){
       unlink($image_path);
    }
    else{
      echo 'file doesnot exist';
    }
}

此外,您还需要具有删除文件的权限。确保运行脚本文件的apache或用户具有该文件的正确权限或所有权。