我想在删除数据库时从存储文件夹中删除图像。
图像文件将从数据库中删除,但无法从服务器存储文件夹中删除。
图像存储在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帮助解决..谢谢
答案 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或用户具有该文件的正确权限或所有权。