Как отключить изображение в php

Я загружаю изображение на сервер и сохраняю путь в базе данных. Теперь я хочу удалить эту запись, а также изображение с этой записью мой код

  $ ID = $ _ GET [ 'ID'];
 $ select = mysql_query ("выберите изображение из table_name, где question_id = '$ id'");
 $ Изображения = mysql_fetch_array ($ выбора);
 @unlink ($ изображения [ 'изображение']);
 $ result = mysql_query ("delete from table_name where question_id = '$ id'"); 

когда i echo $ image ['image']; это даст мне

  http://www.example.com/folder/images/image_name.jpeg 

Запись удаляется успешно, но изображение остается на сервере.

Related of "Как отключить изображение в php"

вам нужно будет использовать путь на своем сервере для удаления изображения, а не URL-адреса.

 unlink('/var/www/test/folder/images/image_name.jpeg'); // correct 

вам следует удалить @ перед unlink() , в этом случае вы увидели бы сообщение об ошибке «файл не найден» или что-то в этом роде.

Просто, если вы используете folder/images/image_name.jpeg вместо всего URL- folder/images/image_name.jpeg внутри unlink, он будет работать нормально, например
unlink (" http://www.example.com/folder/images/image_name.jpeg ");

следует заменить на

 unlink("folder/images/image_name.jpeg"); 

всякий раз, когда вы выбираете свой код в ссылке удаления. например: <a href=addproduct.php?action=delete&pid=$get_info[pid]>Delete</a> тогда вы должны проверить условие, используя элемент cuurent select.

 if(isset($_GET['action']) && $_GET['action']=='delete' && isset($_GET['pid'])) { $query1=("select * from tablename where id='".$_GET['id']."'"); $result1=mysql_query($query1); while($data=mysql_fetch_array($result1)) { $delete=$data['file']; unlink("../upload/$delete"); } $query=("delete from tablename where id='".$_GET['id']."'"); $result=mysql_query($query) or die("not inserted". mysql_error()); if($result==TRUE) { $_SESSION['msg']="product successfully deleted"; header("Location:addproduct.php"); exit; } else { $_SESSION['msg']="error in deleting product"; header("Location:addproduct.php"); exit; } } в if(isset($_GET['action']) && $_GET['action']=='delete' && isset($_GET['pid'])) { $query1=("select * from tablename where id='".$_GET['id']."'"); $result1=mysql_query($query1); while($data=mysql_fetch_array($result1)) { $delete=$data['file']; unlink("../upload/$delete"); } $query=("delete from tablename where id='".$_GET['id']."'"); $result=mysql_query($query) or die("not inserted". mysql_error()); if($result==TRUE) { $_SESSION['msg']="product successfully deleted"; header("Location:addproduct.php"); exit; } else { $_SESSION['msg']="error in deleting product"; header("Location:addproduct.php"); exit; } } 

вы должны использовать относительный путь для удаления файла с сервера с отключением. Если вы сохраняете абсолютный путь в своей базе данных, сначала вы должны увидеть, из какой папки вы удаляете изображение. поэтому, если вы удалите изображение из «delete.php», которое находится на http://www.example.com/folder/delete.php, вы должны сделать что-то вроде этого:

 $db_path = "http://www.example.com/folder/images/upArrow.png"; $len = strlen("http://www.example.com/folder/"); $new_path = substr($db_path, $len, strlen($db_path)-$len); echo " -> ".$new_path; if(isset($_POST['Submit'])){ $return = unlink($new_path); if($return){echo "Succes";}else{echo "Fail";} } 
 //http://www.example.com/folder/images/image_name.jpeg define("BASE_URL", DIRECTORY_SEPARATOR . "folder" . DIRECTORY_SEPARATOR); define("ROOT_PATH", $_SERVER['DOCUMENT_ROOT'] . BASE_URL); $folder_upload = "images/"; $image_delete = ROOT_PATH . $folder_upload . pathinfo($image['image'], PATHINFO_BASENAME); if (!empty($image['image'])) { /* Delete */ if (unlink($image_delete)) { echo "<b>{$image_delete}</b> has been deleted"; } else { echo "<b>{$image_delete}</b> error deleting "; } } else { echo "File image not exist"; } // http://localhost/folder/images/image_name.jpeg