Avatar billede rekun Nybegynder
21. februar 2009 - 17:17 Der er 5 kommentarer og
1 løsning

liste indhold af mappe med mulighed for at downloade

Hej eksperter :D

Jeg er ikke ligefrem den største PHP-programmør, og blir det sikkert heller ikke da jeg primært programmere applikationer i delphi. Men nu synes jeg at det var tid til at jeg skulle have min egen hjemmeside, så derfor gik jeg igang med php. Det køre også bare derudaf, men jeg er støt på et problem som jeg ikke lige kan løse desværre. Jeg vil gerne have listet alle filerne i en undermappe som hedder dokumenter og have en mulighed for at downloade dem. Det ville være super hvis det kunne blive en tabel som var bygget op på den her måde
  -----------------------------
  ! filnavn01.docx  ! Download !
  -----------------------------
  ! filnavn02.docx  ! Download !
  -----------------------------

Men det er også tilladt at løse det på andre måder... på forhånd tak
Avatar billede coderdk Praktikant
21. februar 2009 - 17:19 #1
$files = glob("dokumenter/*");
foreach ( $files as $file )
{
  echo basename( $file ) . ' | <a href="' . $file . '">Download!</a><br />';
}

?
Avatar billede rekun Nybegynder
21. februar 2009 - 17:28 #2
wauw det var hurrigt :) det virker egengtlig ret godt, men der er lige et problem, der ligger også alm .txt filer i mappen, er det muligt at få den til at downloade dem, fremfor at vise dem?
Avatar billede coderdk Praktikant
21. februar 2009 - 17:36 #3
Prøv


$folder = "dokumenter/";
if ( !empty( $_GET['f'] ) && file_exists( $folder . basename( $_GET['f'] )
{
  header( "Content-Type: application/octet-stream" );
  header( "Content-Disposition: attachment;filename=\"".basename( $_GET['f'] . "\"");
  echo file_get_contents( $folder . basename( $_GET['f'] ) );
  exit;
}

$files = glob("dokumenter/*");
foreach ( $files as $file )
{
  $file = basename( $file );
  echo $file . ' | <a href="' . basename( $_SERVER['PHP_SELF'] . '?f=' . $file . '">Download!</a><br />';
}
Avatar billede coderdk Praktikant
21. februar 2009 - 17:38 #4
Blergh:


$folder = "dokumenter/";
if ( !empty( $_GET['f'] ) && file_exists( $folder . basename( $_GET['f'] ) )
{
  $f = basename( $_GET['f'] );
  header( "Content-Type: application/octet-stream" );
  header( "Content-Disposition: attachment;filename=\"". $f . "\"");
  echo file_get_contents( $folder . $f );
  exit;
}

$files = glob( $folder . "/*");
foreach ( $files as $file )
{
  $file = basename( $file );
  echo $file . ' | <a href="' . basename( $_SERVER['PHP_SELF'] ) . '?f=' . $file . '">Download!</a><br />';
}
Avatar billede rekun Nybegynder
21. februar 2009 - 18:03 #5
Der manglede lige en ) tilsidst i linje 3. men nu virker det perfekt. Tak for det, smid et svar :)
Avatar billede coderdk Praktikant
21. februar 2009 - 18:06 #6
Der er et svar 17:36 :)

Den opdaterede kode er nok bedre ;P
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