Er der en der kan hjælpe mig, med at få min kode til at slette billederne i mapperne thumb og prod? Jeg er ved at få grå hår! JEg er ingen ekspert, men ved at lære noget php og har bla kastet mig over det her!
Sådan ser min koden ud: <?php /* Her bliver det sletttet fra databasen, men det skal også slettes fra den mappe hvor billederne ligger (mapperne thumb og prod)? */
include_once ('database.class.php'); $db = new Database('mysql'); $id = $_GET['id'];
$errors = array();
$sql = "select * from billeder where id='$id';"; $fileNames = $db->query($sql, "rows");
// slet thumb billed foreach ($fileNames as $f) { if(is_file("thumb/".$f[1])) { unlink("thumb/".$f[1]); if(!unlink("thumb/".$f[1])) { $errors[] = "thumb/".$f[1]; echo "filen \"thumb/".$f[1]." kunne ikke findes!"; } }
// slet stort billed if(is_file("prod/".$f[2])) { unlink("prod/".$f[2]); if(!unlink("prod/".$f[2])) { $errors[] = "prod/".$f[2]; echo "filen \"prod/".$f[2]." er blevet slettet!"; } } } if(count($errors)>0) { echo "Scriptet kunne ikke slette følgende billeder: "; foreach($errors as $e) echo $e."<br />"; echo "Årsagen er muligvis at scriptet ikke er testet endnu"; // lav en bedre fejlmeddelelse!! :D }
/* * Efter at de fysiske billeder er blevet slettet, kan du slette rækken i db tabellen */
$sql = "DELETE FROM billeder WHERE id='$id'"; //echo $sql; $bilDelete = $db->query($sql,"delete");
if ($bilDelete) { $sql = "DELETE FROM produkter WHERE billed_id='$id'"; //echo $sql; $delete = $db->query($sql,"delete");
echo $message = "Data er slettet"; } else if (!$bilDelete) { echo $message = "Data er IKKE slettet"; } ?>
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Mit problem er at den ikke sletter billederne (filerne) i mapperne thumb og prod. Det bliver slettet fra tabellen, men ligger stadig og optager plads på domænet.
Ang.: Hvorfor siger du unlink 2 gange til samme fil?
unlink("thumb/".$f[1]); - her skal den slettes if(!unlink("thumb/".$f[1])) //her tjekkes om den er slettet
Du skal undersøge om stien til filerne passer. Lav et par testudskrifter, og fortæl os evt hvordan scripts, kataloger og filer ligger i forhold til hinanden.
Synes godt om
Slettet bruger
26. august 2003 - 11:44#5
brug fileexists() til at tjekke om en fil eksisterer, i stedet for unlink().
unlink() kan kun slette filer som du har rettighederne til. Derfor kan unlink("minfil.gif") godt fejle selvom filen eksisterer.
jeg har testet at den får fat i den rigtige fil ved at echo'e $f[1] og den skal så bare ind i mapperne thumb og prod (her er billedfilerne). Disse mapper ligger det samme sted som scriptet her - og derfor skal jeg ikke ud af nogle mapper og stien skulle passe. Håber det er det du ville vide og det du mente, erikjacobsen!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.