Webprofis is een Forum waarin je vragen kunt stellen die webgerelateerd zijn. Heb je vragen over of problemen met je Webpagina, HTML, CSS, Javascript, PHP of andere client of serverside scriptingtalen? Stel ze dan gerust op dit forum. Op dit forum zijn een aantal vrijwilligers actief die u graag met uw vragen willen helpen en u waar mogelijk een passend antwoord aanbieden. Hebt u zelf veel ervaring en kennis met betrekking tot het bovenstaande? U bent van harte welkom om uw kennis met anderen te delen!

We hopen dat eenieder op dit Forum een leerzame ervaring mag opdoen.

Team Webprofis

hoe delete files stuk voor stuk als deze in foreach loop geoutput worden

bewerkt vr 8 apr 2016 in PHP, MySQL Posts: 879
Ben bezig een klein filemanagement te maken en wil de bestanden kunnen deleten
Alle bestanden in een directory worden uitgelezen en geechood. Daarnaast is er een download link die elk bestand download. En nu is het de bedoeling dat er een Delete link komt dat elk bestand kan deleten.
Zoals het nu is, gooit ie alle bestanden eruit als je op een van de delete links klikt.
Dus de variable $file is verkeerd in de unlink op regel 83 hieronder:
    if($_SERVER['REQUEST_METHOD'] == 'POST') {

$Session = Gdn::Session();
$UserName = $Session->User->Name;

// array met toegestane file extensies
$allowedExts = array("gif", "jpeg", "jpg", "png", "zip", "html", "htm", "js", "css", "less", "txt", "pdf");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);

// creeer map "users" als deze nog niet bestaat
$root = "/users/$UserName/";
if (!is_dir($root)) {
@mkdir("users/$UserName/", 0777);

if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "text/html")
|| ($_FILES["file"]["type"] == "text/javascript")
|| ($_FILES["file"]["type"] == "text/css")
|| ($_FILES["file"]["type"] == "text/less")
|| ($_FILES["file"]["type"] == "application/zip")
|| ($_FILES["file"]["type"] == "text/pdf")
|| ($_FILES["file"]["type"] == "text/plain"))
&& ($_FILES["file"]["size"] < 20000000) // 2 Mb max
&& in_array($extension, $allowedExts))

{
// echo's als upload succesvol is
echo 'Status: upload succesvol!<br />';
echo 'Bestand: ' . $_FILES["file"]["name"] . '<br />';
$realname = $_FILES["file"]["name"];

echo 'Type: ' . $_FILES["file"]["type"] . '<br />';
echo 'Grootte: ' . ($_FILES["file"]["size"] / 1024) . ' kB<br />';

$data = explode(".",$_FILES["file"]["name"]);
//$newfilename = uniqid().".".end($data);
$newfilename = $realname;
move_uploaded_file($_FILES["file"]["tmp_name"], "users/$UserName/" . $newfilename);
// het pad naar het bestand dat geupload is; ervan uitgaande dat de map users in de root staat
echo 'Url: ' . "<b>http://develop3.webprofis.nl/users/$UserName/"; . $newfilename.'</b>';
echo '<br /><br />';
}

else
{
// echo als file extensie niet is toegestaan
echo "Niet toegestaan bestand";
}
}
else {

}


} // endif
?>

<form action="" method="post" enctype="multipart/form-data">

<input type="file" name="file" id="file"><br /><br />
<input type="submit" class="Button Primary" name="submit" value="Upload">
</form>


<?php
echo '<br /><br />';

$dir = "users/$UserName";
$files = scandir($dir);
sort($files);
foreach ($files as $file) {
if ($file != '.' && $file != '..') {
?>
<table>
<tr>
<td><?php echo $file."<br />";?></td>
<td><?php if(isset($_GET['delete'])) { unlink("users/$UserName/$file"); } echo "<a href='?delete=1'>Delete Now!</a>"?></td>
<td><?php echo "<a href='users/$UserName/$file' target='_blank'>Download</a>";?></td>
</tr>
</table>
<?php

}
}
Hoe krijg ik dit spits met die unlink() ?
Getagd:

Reacties

Login of Registreer om te reageren.