Avatar billede wolstrup Nybegynder
05. juli 2005 - 13:12 Der er 20 kommentarer og
3 løsninger

download fra mappe

Hej. Er der nogen som ved hvordan man viser indholdet af en mappe, hvor brugeren så har mulighed for at hente de filer mappen indeholder. Scriptet skal bruges så brugeren kan hente mp3filer fra en bestemt mappe.

På forhånd tak.
Avatar billede mccookie Seniormester
05. juli 2005 - 13:22 #1
function listFiler($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&aring; lager</li>";
    }
    return "<h2>Filer p&aring; lager:</h2><ul>" . $liste . "</ul>";
  } else {
    die("Kunne ikke &aring;bne biblioteket: " . $bibliotek);
  }


Hentet fra webcafe.dk

Jeg formoder jo nartuligt at der kun er tale om lovlige MP3'er
Avatar billede mccookie Seniormester
05. juli 2005 - 13:24 #2
og så kalder du jo blot scriptet som en normal function

listfiler(users/mybib/undermappe19/filer); eller hvad den nu hedder

Simpelt og nemt at udbygge ;)
Avatar billede mccookie Seniormester
05. juli 2005 - 13:32 #3
Det her eksempel er nok bedre:

http://www.hj-tech.dk/exp/630513.php
Avatar billede mccookie Seniormester
05. juli 2005 - 13:32 #4
<?php
foreach (glob("*.*") as $filename)
{
  echo "<a href=\"".$filename."\">".$filename."</a><br/>";
}
?>
Avatar billede wolstrup Nybegynder
05. juli 2005 - 13:32 #5
Ja, vi laver selv musikken, så der er ikke noget der. Vil det så sige at hvis mappen med filerne hedder musik, skal scriptet se sådan ud:

function listFiler(musik) {

  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&aring; lager</li>";
    }
    return "<h2>Filer p&aring; lager:</h2><ul>" . $liste . "</ul>";
  } else {
    die("Kunne ikke &aring;bne biblioteket: " . $bibliotek);
  }
Avatar billede mccookie Seniormester
05. juli 2005 - 13:38 #6
Hej igen

Jeg ville anbefale glob() istedet det er meget nemmere....


Ang. din mp3 skrev jeg det blot for ikke en eller anden ville anmelde spørgsmålet ;)
Avatar billede elskermad.dk Nybegynder
05. juli 2005 - 13:39 #7
<?

function listFiler($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&aring; lager</li>";
    }
    return "<h2>Filer p&aring; lager:</h2><ul>" . $liste . "</ul>";
  } else {
    die("Kunne ikke &aring;bne biblioteket: " . $bibliotek);
  }

print listFiler("musik");

?>
Avatar billede wolstrup Nybegynder
05. juli 2005 - 13:53 #8
Når jeg indsætter det får jeg følgende fejl: Parse error: parse error, unexpected $ in /hsphere/local/home/bombload/bombload.com/download.php on line 208

linien er den sidste line på hele siden, og er ikke en del af selve scriptet?
Avatar billede mccookie Seniormester
05. juli 2005 - 13:54 #9
Hvilket et af scriptene bruger du??
Avatar billede mccookie Seniormester
05. juli 2005 - 13:55 #10
<?php
foreach (glob("*.*") as $filename)
{
  echo "<a href=\"".$filename."\">".$filename."</a><br/>";
}
?>

Det her placere du blot i mappen og kalder det eks. visfiler.php

og kalder det fra browseren og vupti alle dine ynglings mp3er springer frem lige til download!!
Avatar billede wolstrup Nybegynder
05. juli 2005 - 13:59 #11
ok, men hvordan kalder jeg den så? den ligger i mappen musik...
Avatar billede wolstrup Nybegynder
05. juli 2005 - 14:02 #12
Altså fra en anden side, og kan det lade sig gøre at man ikke kan se selve visfiler.php filen?
Avatar billede mccookie Seniormester
05. juli 2005 - 14:07 #13
Ja.....du skriver bare *.mp3 istedet for *.*
Avatar billede wolstrup Nybegynder
05. juli 2005 - 14:15 #14
Guld! men er der mulighed for at hente resultatet fra visfiler.php ind på en anden side, så jeg kan få scriptet integreret i mit design?
Avatar billede mccookie Seniormester
05. juli 2005 - 16:30 #15
Uden problemer.....

$hent_filer_fra  = $_SERVER['DOCUMENT_ROOT'];
$hent_filer_fra .= "/Stien/fra/webroden/til/den/mappe/du/vil/hente/filerne/fra";
Avatar billede wolstrup Nybegynder
05. juli 2005 - 19:04 #16
Hvis jeg bruger dette, tar den alle filer i roden og ikke fra mappen musik?

<?php
          foreach (glob("*.*") as $filename)
{
  echo "<a href=\"".$filename."\">".$filename."</a><br/>";
}

$hent_filer_fra  = $_SERVER['DOCUMENT_ROOT'];
$hent_filer_fra .= "/musik/";
?>
Avatar billede mccookie Seniormester
05. juli 2005 - 19:28 #17
Du har jo heller ikke brugt hent_filer_fra variablen

<?php
$hent_filer_fra  = $_SERVER['DOCUMENT_ROOT'];
$hent_filer_fra .= "/musik/";

        foreach (glob("$hent_filer_fra/*.*") as $filename)
{
  echo "<a href=\"".$filename."\">".$filename."</a><br/>";
}


?>
Avatar billede wolstrup Nybegynder
05. juli 2005 - 19:54 #18
Mange tak... Undskyld men er ikke så skarp til det her :-) Kan man undgå at den skriver hele stien, og kun filens navn?
Avatar billede mccookie Seniormester
05. juli 2005 - 19:57 #19
Jeps.....


<copy>
$filnavn = basename($filename);
echo "<a href=\"".$filename."\">".$filnavn."</a><br/>";
<andpaste>

Så viser den kun filnavnet
Avatar billede mccookie Seniormester
05. juli 2005 - 19:58 #20
Men det er hyggeligt at hjælpe dig...

Se under karma ;)
Avatar billede wolstrup Nybegynder
05. juli 2005 - 20:31 #21
Tak for hjælpen mester... Du ka dit kram :-)
Avatar billede wolstrup Nybegynder
05. juli 2005 - 21:21 #22
hov... Når jeg trykker på linkene skriver den siden kan ikke vises...
Avatar billede mccookie Seniormester
05. juli 2005 - 22:32 #23
Hvis du vil have folk skal kunne downloade filerne, så skal du kopiere følgende:

$domain = "http://www.dit-domænde/mappe/hvor/billederne/ligger/";

echo "<a href=\"" . $domain . $filename."\">".$filnavn."</a><br/>";

Så skulle den være der ;)

Tak for de rosende ord.....

Det er dejligt at kunne hjælpe og jeg lære ligeså meget af det som du ;)

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