Я сохраняю путь к моим изображениям в моей базе данных. Чтобы удалить эти изображения, я получаю путь из базы данных.
Это работало нормально, пока я не добавил две папки в путь.
Пока что путь в моей базе данных выглядел так (работает!):
/var/www/myproject/public/images/550d744bd91d16.7869
Теперь это выглядит так (не работает!):
/var/www/myproject/public/images/5/profile/550d744bd91d16.7869
Мой код
$folder_name = /var/www/myproject/public/images/ . $_GET['user_id'] . '/';
$profile_folder = $folder_name . 'profile/';
chmod($folder_name, 0777);
chmod($profile_folder, 0777);
// Get the images file path
$database = DatabaseFactory::getFactory()->getConnection();
$query = $database->prepare("SELECT image_path FROM images WHERE image_id = :image_id AND user_id = :user_id LIMIT 1");
$query->execute(array(':image_id' => $image_id, ':user_id' => Session::get('user_id')));
$img_path = $query->fetch();
// Convert array to string
$path = $img_path->image_path;
$file = $path . '.jpg';
if (file_exists($file)) {
// Delete the image file on the server
unlink($file);
} else {
echo 'An error occured';
return false;
}
Что я пробовал до сих пор
Путь определенно правильный. Я трижды проверил в базе данных и вывел переменную несколько раз.
Поэтому я подумал, что это должны быть права доступа к каталогу, однако я добавил разрешения к коду и ничего не изменилось.
Я не получаю никакого сообщения об ошибке, и я был бы очень благодарен за любую помощь с этим!
Резюме
file_exists(unlink($file))
возвращает ЛОЖЬ.
unlink($file)
возвращает TRUE.
Файл разрешений:
images drwxrwxrwx
5 drwxrwxrwx
profile drwxrwxrwx
image.jpg -rwxrwxrwx
Задача ещё не решена.
Других решений пока нет …