удалить изображение в папке и его «мини» размер в то же время

Я создал папку «../img/travaux/villa», в которой содержится мое изображение, поэтому при загрузке изображения я создал скрипт, который создает «мини» копию этого изображения в новой папке «../img/ travaux / villa / mini «, с таким же названием.

Теперь я хочу сделать кнопку для удаления моего изображения, но я также хочу, чтобы удалить «мини» изображение в то же время, как я могу сделать это?

это мой код для показа и удаления изображения, но это не удаляет мини-изображение:

<?php
if (array_key_exists('delete_file', $_POST)) {
$filename = $_POST['delete_file'];
if (file_exists($filename)) {
unlink($filename);
echo 'File '.$filename.' has been deleted';
} else {
echo 'Could not delete '.$filename.', file does not exist';
}
}
$folder = glob("../img/travaux/villa/*jpg");
foreach ($folder as $picture) {
echo "<div class='divimages'>";
echo '<img src="'.$picture.'"/>';
echo '<form method="post">';
echo '<input type="hidden" value="'.$picture.'" name="delete_file" />';
echo '<input type="submit" class="delete-button" value="Delete image" />';
echo '</form>';
echo "</div>";
}
?>

0

Решение

Просто добавьте эту строку кода после отмены связи с основным изображением:

unlink(pathinfo($filename, PATHINFO_DIRNAME).'/mini/'.pathinfo($filename, PATHINFO_BASENAME));
0

Другие решения

Вы можете попробовать вот так:

$fileName = basename($_POST['delete_file']);
// this will remove the path and leave only the name of the file.
$filePath = 'your full path'.'/'.$fileName;
// now build the 'mini image' full path - like '/var/www/project/img/travaux/villa/mini'.'/'.$fileName
if (file_exists($filePath)) {
unlink($filePath);
echo 'File '.$filePath.' has been deleted';
} else {
echo 'Could not delete '.$filePath.', file does not exist';
}

Примечание. При этом удаляется только мини-изображение. Вам нужно будет добавить это в существующий код, чтобы также удалить основное изображение.

1

Вы должны создать простую функцию удаления файлов, которая принимает массив имен файлов. И вызвать функцию с названиями кабин. Это гибкое решение, потому что замена деталей происходит снаружи.

0

В вашем коде есть уязвимость, кто-то может удалить любой файл из корневой папки вашего сайта, будьте осторожны!

Вы можете попробовать следующий код:

$paths = array(
'orig' => '../img/travaux/villa/',
'mini' => '../img/travaux/villa/mini/',
);

if (array_key_exists('delete_file', $_POST)) {
$filename = basename($_POST['delete_file']);
foreach($paths as $path) {
if (file_exists($path.$filename)) {
if(!unlink($path.$filename)) {
$error = 'File '.$filename.' could not be deleted';
}
else {
echo 'File '.$filename.' has been deleted';
}
}
else {
$error = 'Could not delete '.$filename.', file does not exist';
}
if($error) echo $error;
}
}
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector