Добавить в загруженную таблицу изображений выбор удаления одного из изображений
У меня есть страница, где я могу загрузить некоторые изображения, посмотреть список изображений, загруженных в таблицу. Я хочу добавить возможность удалить одно из изображений в списке с сервера. Я пытался, но что-то в этом коде не работает. Любая помощь?
<html>
<body>
<form action="" method="post" enctype="multipart/form-data">
Select a photo to upload:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Load" name="submit">
</form>
<?php
$dir = 'up/';
$files = scandir($dir);
$maxnum = count($files);
?>
<table class="thumbnail">
<?php $i = 2;
for ($j = 0; $j < $maxnum; $j++) {
echo '<tr>';
$k = $i + 5;
for ($i; $i < $k; $i++) {
If ($i == $maxnum) { break; }
echo '<td><a href="'.$dir.$files{$i}.'"><img src="'.$dir.$files{$i}.'"></a> </td>';
if (isset($_GET['delete']))
{
unlink($_GET['delete']);
$_SESSION['delete'] = $_GET['delete'];
unset($_GET['delete']);
$url = $_SERVER['SCRIPT_NAME'].http_build_query($_GET);
header("Refresh:0; url=".$url);
}
?>
<a href='index.php?delete=up/<?php echo $key?>' id="button">Delete now</a>
}
echo "</tr>";
} ?>
</table>
</div>
</body>
</html>
<?php
if (isset($_POST['submit']))
{
echo '<center><h1>succesfully loaded!</h1></center>';
$structure = 'up/';
$target_file = $structure.basename($_FILES["fileToUpload"]["name"]);
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file);
}
?>
2 ответа
Решение
Ошибки, которые сделали:
Не закрывая цикл
}}
в концеНе указав правильный путь к файлу
$dir.$files{$i}
в теге привязки.
Вот Эваль
Вот код:
<html>
<body>
<form action="" method="post" enctype="multipart/form-data">
Select a photo to upload:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Load" name="submit">
</form>
<?php
$dir = 'up/';
$files = scandir($dir);
$maxnum = count($files);
?>
<table class="thumbnail">
<?php $i = 2;
for ($j = 0; $j < $maxnum; $j++) {
echo '<tr>';
$k = $i + 5;
for ($i; $i < $k; $i++) {
If ($i == $maxnum) { break; }
echo '<td><br><a href="'.$dir.$files{$i}.'"><img src="'.$dir.$files{$i}.'" height="50" width="50"></a> </td>';
if (isset($_GET['delete']))
{
unlink($_GET['delete']);
$_SESSION['delete'] = $_GET['delete'];
unset($_GET['delete']);
$url = $_SERVER['SCRIPT_NAME'].http_build_query($_GET);
header("Refresh:0; url=".$url);
}
?>
<a href='index.php?delete=<?php echo $dir.$files{$i}?>' id="button">Delete now</a>
</table>
</div>
</body>
</html>
<?php
if (isset($_POST['submit']))
{
echo '<center><h1>succesfully loaded!</h1></center>';
$structure = 'up/';
$target_file = $structure.basename($_FILES["fileToUpload"]["name"]);
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file);
}
}}
?>
Замечания:
Первый тег привязки может выглядеть по левому краю. Это просто проблема дизайна;)
Я нашел две проблемы: вы забыли <?php
тег и ваша ссылка для удаления была неправильной
Итак, код:
<html>
<body>
<form action="" method="post" enctype="multipart/form-data">
Select a photo to upload:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Load" name="submit">
</form>
<?php
$dir = 'up/';
$files = scandir($dir);
$maxnum = count($files);
?>
<table class="thumbnail">
<?php $i = 2;
for ($j = 0; $j < $maxnum; $j++) {
echo '<tr>';
$k = $i + 5;
for ($i; $i < $k; $i++) {
If ($i == $maxnum) { break; }
echo '<td><a href="'.$dir.$files{$i}.'"><img src="'.$dir.$files{$i}.'"></a> </td>';
if (isset($_GET['delete']))
{
unlink($_GET['delete']);
$_SESSION['delete'] = $_GET['delete'];
unset($_GET['delete']);
$url = $_SERVER['SCRIPT_NAME'].http_build_query($_GET);
header("Refresh:0; url=".$url);
}
?>
<a href='index.php?delete=<?php echo $dir.$files{$i}?>' id="button">Delete now</a>
<?php //<--you forgot this
}
echo "</tr>";
} ?>
</table>
</div>
</body>
</html>
<?php
if (isset($_POST['submit']))
{
echo '<center><h1>succesfully loaded!</h1></center>';
$structure = 'up/';
$target_file = $structure.basename($_FILES["fileToUpload"]["name"]);
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file);
}
?>