Avatar billede webname Nybegynder
29. september 2006 - 21:49 Der er 6 kommentarer og
1 løsning

Slet fra fil liste?

Hej eksperter..
Jeg er ved at lave en filemanager.. Den skal bare kunne uploade filer, slette filer - og vise "dir". Jeg har lavet så jeg kan uploade, og fremvise mappen..
Har prøvet at lave delete via "unlink" (http://no.php.net/manual/da/function.unlink.php), men det virker ikke rigtigt..
Hvad gør jeg forkert?? (hjemmeside adresse: http://server.webname.dk/1/usbkey/upload/),(Du er meget velkommen til at prøve at uploade/slette)
//Jannik Hansen

PS. lige for en god ordens skyld, skal jeg lige sige.. Den har ikke nogen database forbindelse..

kode..
index.php
<?php


$konfiguration["upload_bibliotek"] = "./upload/";

$konfiguration["max_stoerrelse"] = "20480";


list($major, $minor, $rev) = explode(".", phpversion());
if($major < 4) {
  die("minimum .PHP4");
}

if($minor < 1) {
  $_FILES = $HTTP_POST_FILES;
  $_POST = $HTTP_POST_VARS;
  $_SERVER = $HTTP_SERVER_VARS;
}


if($_FILES["upfil"]["size"] > 0) {


  $fra = $_FILES["upfil"]["tmp_name"];
  $til = $konfiguration["upload_bibliotek"] . "/" . $_FILES["upfil"]["name"];

  $fil_stoerrelse = filesize($fra)/20480;
  if($fil_stoerrelse > $konfiguration["max_stoerrelse"]) {
      die("Desv&aelig;rre - filen er for stor. Serveren accepterer kun " .
          $konfiguration["max_stoerrelse"] . "kb, og din fil fylder " .
          ceil($fil_stoerrelse) . "kb");
  }
  if(function_exists("move_uploaded_file")) {
    move_uploaded_file($fra, $til);
  } else {
    copy($fra, $til);
  }

  header("Location: " . $_SERVER["PHP_SELF"]);
  exit;

} else {

  if(isset($_POST['sletFil']))
    {
    sletFiler();
    }
  $indhold = listFiler($konfiguration["upload_bibliotek"]);
  $indhold .= bygFormular($_SERVER["PHP_SELF"]);
  $output = bygSide("upload at onlinehd.dk (2)", $indhold);

}


function sletFiler()
{
  foreach($_POST as $fil=>$value)
    if ($value == "on")
      {
      $filUdenUnderScore = substr($fil, 1, strlen($fil) - 1);
      unlink ("$bibliotek/$filUdenUnderScore");
      //unlink ("D:\http\Htdocs\1\usbkey\upload\upload\);

      }
    //echo "$fil  <br>";
      }


echo $output;
exit;




function bygSide($titel, $indhold)
{

  return '<html>
            <head><title>' . $titel . '</title></head>
            <body bgcolor="#ffffff">
              <div align="right"><a href="http://www.usbkey.dk">Tilbage til usbkey.dk (forside)</a></div>
              ' . $indhold . '</body>
          </html>
        ';

}

function bygFormular($action) {

  $formular = '<form action="' . $action . '" method="post" enctype="multipart/form-data" target="load-frame.html">
                <table border="1" cellpadding="5" cellspacing="0">
                  <tr>
                    <td align="right" bgcolor="#999999"><b>Fil til upload:</b></td>
                    <td bgcolor="#cccccc"><input type="file" name="upfil" /></td>
                  </tr>
                  <tr>
                    <td colspan="2" align="middle" bgcolor="#dddddd"><input type="submit" value="upload" /></td>
                  </tr>
                </table>
              </form>
              ';

  return "<h2>Upload fil:</h2>" . $formular;

}

function listFiler($bibliotek) {
$formular = "<form action=\"./\" method=\"post\">";

  if($bib = @opendir($bibliotek)) {
    while (false !== ($fil = readdir($bib))) {
      if($fil != "." && $fil != ".." && !ereg("^\..+", $fil)) {
        $fil_liste[] = "<a href=\"$bibliotek/$fil\">$fil</a><input type=\"checkbox\" name=\"$bibliotek/$fil\"> ";
      }
    }
    closedir($bib);

    if(is_array($fil_liste)) {
      $liste = "<li>" . join("</li><li>", $fil_liste) . "</li>";
    } else {
      $liste = "<li>Ingen filer p&aring; serveren</li>";
    }
    $formular .= "<h2>Filer p&aring; Serveren:</h2><ul>" . $liste . "</ul>";     
    $formular .= "<input type=\"submit\" name=\"sletFil\" value=\"slet filer\">";
    $formular .=  "</form>";
    //file_put_contents("xx", $formular);
    return $formular;
  } else {
    die("Kunne ikke &aring;bne biblioteket p&arin serveren: " . $bibliotek);
  }

}

?>
Avatar billede jaw Nybegynder
29. september 2006 - 21:52 #1
Grunden til at din unlink ikke virker, er nok at du sender forkerte værdier til den: unlink(//upload//bgcolor_jpg) <- filen hedder næppe bgcolor_jpg.
Avatar billede webname Nybegynder
29. september 2006 - 21:54 #2
Biblioteket kan ses, på http://server.webname.dk/1/usbkey/upload/upload/
Nej.. den hedder bgcolor.jpg.. Hvorfor skirver den _ istedet for . ??
Avatar billede jaw Nybegynder
29. september 2006 - 21:58 #3
Tjah, det kan jeg ikke lige gennemskue hvorfor. Men hvorfor kalder du checkboxens navn filens navn i stedet for at bruge value-attributten?
Avatar billede webname Nybegynder
29. september 2006 - 21:59 #4
Hvad gør den ikke finder den rigtige sti på filen??
Den før jo stien afvide..

function sletFiler()
{
  foreach($_POST as $fil=>$value)
    if ($value == "on")
      {
      $filUdenUnderScore = substr($fil, 1, strlen($fil) - 1);
      unlink ("$bibliotek/$filUdenUnderScore");
Avatar billede jaw Nybegynder
29. september 2006 - 22:00 #5
Måske gør den, jeg er ikke helt med på hvad du vil med substr og hvad du får ud af din foreach.
Avatar billede webname Nybegynder
29. september 2006 - 22:00 #6
øhh..
Avatar billede webname Nybegynder
13. oktober 2006 - 22:04 #7
lukker
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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