Avatar billede rarna Nybegynder
01. juni 2004 - 21:33 Der er 13 kommentarer og
1 løsning

Delete billede

Jeg har et script som giver besøgende mulighed for at uploade billede til en bestemt mappe på serveren hvor min side ligger.
Problemet er at jeg ved ikke hvordan jeg skal give dem mulighed for at slette billedet igen, kan nogen hjælpe mig med det?
Avatar billede taskmgr Nybegynder
01. juni 2004 - 21:56 #1
Den korte forklaring er:

unlink("fil.ext")
http://dk2.php.net/unlink

Den lange afhænger lidt af behovet :)
Avatar billede rarna Nybegynder
01. juni 2004 - 22:08 #2
Jeg går ud fra at der bliver omkring 20 billeder i mappen ad gangen og man skal kunne slette kun en af dem. Hvis jeg vil hente selve navnene på billederne fra mappen med et delete link ved siden af, hvordan ville det så se ud.
Avatar billede taskmgr Nybegynder
01. juni 2004 - 22:13 #3
Alle billeder fra en mappe?
Avatar billede rarna Nybegynder
01. juni 2004 - 22:19 #4
Ja, altså udskrive en liste med navnene på alle billederne (billedeNavn.ext, ext behøver ikke at komme med) som mappen indeholder med et delete link ved hvert billede.
Avatar billede taskmgr Nybegynder
01. juni 2004 - 22:24 #5
Det gik lidt hurtigt og sikkerheden er nok ikke i top, men den virker :)

<?php

$dir = "filer/"; // Din mappe med billeder

if(!isset($_GET['slet'])){
    if (is_dir($dir)) {
      if ($dh = opendir($dir)) {
          while (($file = readdir($dh)) !== false) {
            if($file != "." && $file != ".."){
            echo $file . "&nbsp; <a href=\"" . $_SERVER['PHP_SELF'] . "?slet=" . $file . "\">slet fil</a><br />\n";
            }
          }
          closedir($dh);
      }
    }
}else{
    if(file_exists($dir . $_GET['slet'])){
        unlink($dir . $_GET['slet']);
        echo "Filen: " . $_GET['slet'] . " blev slettet. <a href=\"" . $_SERVER['PHP_SELF'] . "\">Gå tilbage</a>";
    }else{
        echo "Filen: " . $_GET['slet'] . " findes ikke. <a href=\"" . $_SERVER['PHP_SELF'] . "\">Gå tilbage</a>";
    }
}

?>
Avatar billede sukos Juniormester
01. juni 2004 - 23:59 #6
$dir = "filer/"; // Din mappe med billeder

er bedre hvis du lige bruger den fulde sti på serveren

$dir = $_SERVER["DOCUMENT_ROOT"] ."/filer/"; // Din mappe med billeder


unlink($dir . $_GET['slet']);

er måske bedre at bruge

unlink($dir . rawurldecode($_GET['slet']));

???????????????
Avatar billede sukos Juniormester
02. juni 2004 - 00:00 #7
Men ellers er der vist ikke noget i vejen :O}
Avatar billede taskmgr Nybegynder
02. juni 2004 - 00:07 #8
Ja det ser mere fornuftigt ud :o)
Avatar billede rarna Nybegynder
02. juni 2004 - 11:49 #9
Simpelthen perfekt, tak!. Jeg mangler kun svar fra taskmgr så jeg give dig dine points.
Avatar billede taskmgr Nybegynder
02. juni 2004 - 13:07 #10
Vær så god :) og velbekomme
Avatar billede rarna Nybegynder
02. juni 2004 - 16:14 #11
Der er faktisk et problem. Jeg har to php filer (uploadimage.php og deleteimage.php) også liggende i mappen og de kommer derfor med på listen med et delete link. Kan det undgås?
Avatar billede taskmgr Nybegynder
02. juni 2004 - 16:20 #12
Ja, du kan få lidt inspiration :)

Lav et array med de tilladte endelser (det har du muligvis allerede fra upload delen).

I while løkken finder du så fil-endelsen på hver fil, og tjekker med in_array() i if sætningen.
Avatar billede rarna Nybegynder
02. juni 2004 - 20:38 #13
"Nyt" spørgsmål, nye points....  http://www.eksperten.dk/spm/505371
Avatar billede taskmgr Nybegynder
03. juni 2004 - 08:56 #14
Du kunne elllers bare ha' spurgt her igen :) Jeg skrev det kun kort fordi jeg havde travlt :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester