Avatar billede michaeljuul Nybegynder
10. marts 2005 - 14:51 Der er 1 kommentar

Uploade til et bibliotek som ligger under et andet?

Jeg har været igang med det sammen spørgsmål i en anden tråd http://www.eksperten.dk/spm/597949
Men ham som var igang med og hjælpe mig forsvandt ligepluselig :-|


Se koden her under:

<?php

/* Funktioner der benyttes */

function list_filer($bibliotek) {

  if($bib = @opendir($bibliotek)) {
    /**
    * Denne syntaks er forklaret i PHP-manualen:
    * http://www.php.net/manual/en/function.readdir.php
    */
    while (false !== ($fil = readdir($bib))) {
      if($fil != "." && $fil != ".." && !ereg("^\..+", $fil)) {
          $fil_liste[] = "<a href=\"$bibliotek/$fil\">$fil</a>";
      }
    }
    closedir($bib);

    if(is_array($fil_liste)) {
      $liste = "<li>" . join("</li><li>", $fil_liste) . "</li>";
    } else {
      $liste = "<li>Ingen filer på lager</li>";
    }
    return "<h2>Filer på lager til brug på TEC</h2><BR>
        <h5>Hvis du uploader noget, så send mig<BR>
        en mail up@duerher.dk:</h5><ul>" . $liste . "</ul>";
  } else {
    die("Kunne ikke åbne biblioteket: " . $bibliotek);
  }

}

function upload_fil($fil, $max_stoerrelse = 9000000, $bibliotek = "default", $filtyper_tilladt = "default") {
    if ($filtyper_tilladt == "default") {
        $filtyper_tilladt = array("image/bmp", "image/jpeg", "image/pjpeg", "image/tiff", "image/png", "image/gif", "application/pdf", "application/zip", "application/arj", "application/msword", "application/vnd.ms-excel", "application/exe", "application/x-zip-compressed", "application/octet-stream");
    }
    if ($fil["size"] > 0) {
       
        $filnavn = strtolower(ereg_replace(" ", "_", $fil["name"]));
        $fra = $fil["tmp_name"];
        $til = "uploads/dir".$_POST['overdir']."/dir".$_POST['underdir']."/".$filnavn;
        $fil_stoerrelse = filesize($fra)/10240;
        $filtype = $fil["type"];
        $fejl = 0;

        if (!in_array($filtype, $filtyper_tilladt)) {
            echo "<p>Filtypen '$filtype' er ikke tilladt. De tilladte filtyper er '" . implode("', '", $filtyper_tilladt) . "'. Filen '$filnavn' kan derfor ikke uploades!</p>";
            $fejl = 1;
        }
        if ($fil_stoerrelse > $max_stoerrelse) {
            echo "<p>Filen '$filnavn' er for stor og kan ikke uploades. Den fylder " . ceil($fil_stoerrelse) . " kb og der kan maximalt uploades $max_stoerrelse kb!</p>";
            $fejl = 1;
        }
        if ($fejl == 0) {
            if (file_exists($til)) {
               
                $pos = strrpos($filnavn, ".");
                $foerpos = substr($filnavn, 0, $pos);
                $efterpos = substr($filnavn, $pos + 1, strlen($filnavn) - ($pos + 1));
                $i = 2;
               
                echo "<p>Filen '$filnavn' eksisterer allerede i '" . $bibliotek . "' og filen omdøbes derfor til ";
               
                while (file_exists($til)) {
                    $filnavn = $foerpos . "(" . $i . ")." . $efterpos;
                    $til = $bibliotek . "/" . $filnavn;
                    $i++;
                }
                echo "'$filnavn'</p>";
            }

            if (move_uploaded_file($fra, $til)) {
                return $fil_sti;
            } else {
                echo "<p>Desværre, filen '$filnavn' kunne ikke uploades!</p>";
                return false;
            }
        }
    } else {
        echo "<p>Der er ikke vedhæftet nogen fil!</p>";
    }
}

/* Siden starter */

if ($_POST[sendknap]) {

    $fil = $_FILES["upfil"];
    upload_fil($fil);

}
?>

<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" enctype="multipart/form-data">
<fieldset>
  <legend>Upload fil</legend>
  <input type="file" name="upfil" size="30" /><br />
  <select name="overdir">
  <option>---v&aelig;lg odir---</option>
  <option value="1">Dir 1</option>
  <option value="2">Dir 2</option>
  <option value="3">Dir 3</option>
  <option value="4">Dir 4</option>
  </select>
<select name="underdir">
  <option>---v&aelig;lg udir---</option>
  <option value="5">Dir 5</option>
  <option value="6">Dir 6</option>
  <option value="7">Dir 7</option>
  <option value="8">Dir 8</option>
  </select>
  <input type="submit" name="sendknap" value="Upload" />
</fieldset>
</form>


<?php
for($i=1;$i<5;$i++) {
  print("Overdir: ".$i);
  for($j=5;$j<9;$j++) {
      print("Underdir: ".$j);
      list_filer("dir".$i."/dir".$j);
  }
}
?>

Jeg kan ikke få den til at uploade.
Her kan i prøve og uploade og se hvad der sker: http://www.duerher.dk/uploads/uploads.php

Der skulle også gerne være mulighed for at man, kan gå ind i de forskellige biblioteker, og se hvad der ligger i dem. Og downloade fra dem.

I må også gerne komme med et helt andet script, hvis i har sådan et. Det skal bare helst være uden Mysql.

Jeg er også villig til at give flere point.

/Michal
Avatar billede michaeljuul Nybegynder
10. marts 2005 - 15:42 #1
Det meget gerne se ud som det her. http://www.krudtting.dk/files/
Altså så man kan gå ind i et biblioetek og downloade.
Der skal bare være mulighed for at uploade fra den side, man kommer ind på.
Og vælge hvilken bibliotek man vil uploade til.

/Michal
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