Avatar billede human Nybegynder
10. oktober 2005 - 23:21 Der er 10 kommentarer og
1 løsning

liste mapper og filer der ligger i dir

Jeg brugger dette script.

<?php
if ($handle = opendir('/')) {
  while (false !== ($file = readdir($handle))) {
      if ($file != "." && $file != "..") {
          print "$file\n";
      }
  }
  closedir($handle);
}
?>

Det lister så alle de filer og mapper som ligger i et givent dir.
Men jeg vil gerne have så man kan klikke på det dir, og så komme til de dirs/filer som under et dir som er listet.

Er det muligt?
Avatar billede coderdk Praktikant
11. oktober 2005 - 01:57 #1
Prøv noget i stil med:

<?php
$dir = ( !empty( $_GET['dir'] ) ? $_GET['dir'] : '/' );
$dir .= ( $dir[strlen($dir)-1] != '/' ? '/' : '' );
if ($handle = opendir($dir)) {
  while (false !== ($file = readdir($handle))) {
      if ($file != "." && $file != "..") {
          if ( is_dir( $dir . $file ) )
          {
            print "<a href='" . $_SERVER['PHP_SELF'] . "?dir=" . $dir . $file . "'>$file</a>\n";
          }
          else
          {
            print "$file\n";
          }
      }
  }
  closedir($handle);
}
?>
Avatar billede Slettet bruger
11. oktober 2005 - 01:58 #2
Prøv:

<?php
$dir = $_GET['dir'];

if ($handle = opendir($dir)) {
  while (false !== ($file = readdir($handle))) {
      if ($file != "." && $file != "..") {
          print '<a href="'.PHP_SELF.'?dir=$file">$file</a><br />';
      }
  }
  closedir($handle);
}
?>
Avatar billede Slettet bruger
11. oktober 2005 - 01:59 #3
Okay, coderdk's er vidst mere redundant.. og fejlfri ;)
Avatar billede human Nybegynder
11. oktober 2005 - 14:55 #4
Det virker ret godt coderdk :)

Men hvis der er tale om filer, ikke dirs.. KAn det så laves så jeg kan gøre så de kan downloades?

Så hvis noget.exe er listet, hvis jeg trykker på den starter dl? :)
Avatar billede human Nybegynder
11. oktober 2005 - 14:56 #5
nå ja, og så den laver linieskift efter hvert dir og fil der er listet.

Lige nu står det sådan her:
noget1 noget2 noget3

kan det laves sådan her?
noget1
noget2
noget3
Avatar billede coderdk Praktikant
11. oktober 2005 - 15:03 #6
<?php
$dir = ( !empty( $_GET['dir'] ) ? $_GET['dir'] : '/' );
$dir .= ( $dir[strlen($dir)-1] != '/' ? '/' : '' );
if ($handle = opendir($dir)) {
  while (false !== ($file = readdir($handle))) {
      if ($file != "." && $file != "..") {
          if ( is_dir( $dir . $file ) )
          {
            print "<a href='" . $_SERVER['PHP_SELF'] . "?dir=" . $dir . $file . "'>$file</a> &lt;DIR&gt;<br>";
          }
          else
          {
            print "<a href='download.php?file=" . $dir . $file . "'>$file</a> ";
            print filesize( $dir . $file ) . " bytes <br>";
          }
      }
  }
  closedir($handle);
}
?>

dit script download.php:

<?php

  if ( empty( $_GET['file'] ) || !is_file( $_GET['file'] ) )
  {
    die( 'Fejl.' );
  }
  header( 'Content-Type: application/octet-stream' );
  header( 'Content-Disposition: inline; filename="' . basename( $_GET['file'] ) . '"' );
  header( 'Content-Length: ' . filesize( $_GET['file'] ) );
  readfile( $_GET['file'] );

?>
Avatar billede human Nybegynder
11. oktober 2005 - 15:23 #7
Den siger 404 Not Found når det gælder en fil den skal dl..
Avatar billede coderdk Praktikant
11. oktober 2005 - 15:29 #8
Har du lagt download.php samme sted som det oprindelige script?
Avatar billede human Nybegynder
11. oktober 2005 - 15:48 #9
Hovsa havde jheg ikke.. NU ligger de i samme dir, få denne fejl nu:

Warning: Cannot modify header information - headers already sent by (output started at d:\programmer\wamp\www\Browse\download.php:9) in d:\programmer\wamp\www\Browse\download.php on line 15

Warning: Cannot modify header information - headers already sent by (output started at d:\programmer\wamp\www\Browse\download.php:9) in d:\programmer\wamp\www\Browse\download.php on line 16

Warning: Cannot modify header information - headers already sent by (output started at d:\programmer\wamp\www\Browse\download.php:9) in d:\programmer\wamp\www\Browse\download.php on line 17

OG en helvedes masse underlige tegn jeg ik kan indtaste her..
Avatar billede human Nybegynder
11. oktober 2005 - 15:49 #10
Havde html før scriptet kom.. Det var derfor. læg et svar :)
Avatar billede coderdk Praktikant
11. oktober 2005 - 17:52 #11
Yes :)
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