[PHP] content dir aanklibaar en laten zien

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een directory op mijn webserver, mijn server laat de bestanden dan niet zien die erop staan. Ik heb nu een PHP script ergens vandaan getoverd die wel een lijst laat zien met bestanden.

http://www.pcrrules.nl/semmi

Alleen nu wil ik dat ik zo'n bestand kan aanklikken en dat hij hem dan opend of download.

In directory staat een index.php bestand met de broncode:
PHP:
1
2
3
4
5
6
7
8
9
<?php
if($handle = opendir('//home/virtual/site225/fst/var/www/html/semmi/')){
while (false !== ($file = readdir($handle))):
echo $file."\n<br>";
endwhile;

closedir($handle); 
}
?>


Deze zorgt voor de indexering van alle bestanden. Maar hoe kan ik ervoor zorgen dat ze ook aanklikbaar worden?

Ik heb al gezocht naar dit onderwerp, alleen daarmee vond ik een ASP oplossing, en mijn server ondersteunt geen ASP. Dus wil ik iets vinden met PHP.

Hopelijk weten jullie iets.

De Rust Rolo

Acties:
  • 0 Henk 'm!

  • creative8500
  • Registratie: September 2001
  • Laatst online: 01-02 14:14

creative8500

freedom.

Dit topic dient naar Programming & Webscripting verplaatst te worden.

Maar ik denk zoiets:
PHP:
1
2
3
4
5
if ($_GET['filename'])
{
    header ('Content-Type: application/octet-stream');
    reafile ($_GET['filename'])
}

[ Voor 54% gewijzigd door creative8500 op 03-11-2003 17:35 ]


Acties:
  • 0 Henk 'm!

  • creative8500
  • Registratie: September 2001
  • Laatst online: 01-02 14:14

creative8500

freedom.

edit:
spuit 1.1, alleen door het niet gebruiken van Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/got/images/icons/edit.gif werd het spuit 2

[ Voor 87% gewijzigd door creative8500 op 03-11-2003 17:36 ]


Acties:
  • 0 Henk 'm!

  • disjfa
  • Registratie: April 2001
  • Laatst online: 03-07 14:47

disjfa

be

jep,
maar je kan ook tussendoor zeggen dat hij kan kijken naar de extentie van de files om te kijken of je ze kan openen in de browser (readfile) of anders een link van maakt in de php zelf :)

en zo kan je idd ook wat doen :)

[ Voor 9% gewijzigd door disjfa op 03-11-2003 17:36 ]

disjfa - disj·fa (meneer)
disjfa.nl


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
O sorry, heb het verkeerde onderwerp aan geklikt, dit topic hoort zeker bij Programming & Webscripting. Sorry

ik moet nu eten, maar na het eten zal ik je oplossing proberen.

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

W&G --> P&W

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Suepahfly
  • Registratie: Juni 2001
  • Laatst online: 17-09 17:05
PHP:
1
2
3
4
5
6
7
8
9
10
<?php
if($handle = opendir('//home/virtual/site225/fst/var/www/html/semmi/'))
{
   while (false !== ($file = readdir($handle))):
   {
       echo "<a href=".$file.">".$file."</a>\n<br>";
   }
   closedir($handle); 
}
?>


Gewoon een linkje van maken dus. Wel even de juiste url er voor zetten

Acties:
  • 0 Henk 'm!

  • creative8500
  • Registratie: September 2001
  • Laatst online: 01-02 14:14

creative8500

freedom.

disjfa:
hij kan kijken naar de extentie van de files om te kijken of je ze kan openen in de browser
Goed idee, ja. Dan zul $_SERVER['HTTP_ACCEPT'] gaan gebruiken.

Samengevat (maar niet getest):
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
if (isset ($_GET['filename']) && !empty ($_GET['filename']))
{
    // check of de extensie overeenkomt met een waarvan
    // het bijbehorende MIME-type voorkomt in de HTTP_ACCEPT,
    // zoniet: $stream = true;

    if ($stream) header ('Content-Type: application/octet-stream');
    else header ('Content-Type: ' . $mimetype);
    readfile ($filename);
}
else
{
    if ($handle = opendir('//home/virtual/site225/fst/var/www/html/semmi/'))
    {
       while (false !== ($file = readdir ($handle))):
       {
           echo '<a href="thisfile.php?filename='.$file.'">'.$file.'</a><br />';
       }
       closedir ($handle);
    }
}

En Duracell, geef wel even een bronvermelding.

[ Voor 65% gewijzigd door creative8500 op 03-11-2003 17:49 ]


Acties:
  • 0 Henk 'm!

  • The Bad Seed
  • Registratie: November 2001
  • Laatst online: 17-09 06:48

The Bad Seed

Chaotic since 1983

ik denk dat je zoiets bedoelt:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
// open this directory
print '<html>';
$myDirectory = opendir(".");

// get each entry
while($entryName = readdir($myDirectory))
{
$dirArray[] = $entryName;
}
// close directory
closedir($myDirectory);


//count elements in array
$indexCount= count($dirArray);
Print ("$indexCount files<br>\n");
// sort 'em
sort($dirArray);
// print 'em
print("<TABLE border=1 cellpadding=5 cellspacing=0 class=whitelinks>\n");
print("<TR><TH>Filename</TH><th>Filetype</th><th>filesize</th></TR>\n");

for($index=0; $index< $indexCount; $index++)
{
print("<TR><TD><a href=\"$dirArray[$index]\">$dirArray[$index]</a></td>");
print("<td>");
print(filetype($dirArray[$index]));
print("</td>");
print("<td>");
print(filesize($dirArray[$index]));
print("</td>");
print("</TR>\n");
}
print("</TABLE>\n");
print '</html>';
?>


edit:
creative8500 schreef op 03 november 2003 @ 17:39:

En Duracell, geef wel even een bronvermelding.
Weet ik allang niet meer, het is een scriptje wat al iets van een jaar of langer op een verloren hoekje op 1 van mijn gratis hostpakketjes staat. Als ik me goed herinner heb ik het met google gevonden.

[ Voor 112% gewijzigd door The Bad Seed op 03-11-2003 18:13 ]

Hail to the guardians of the watchtowers of the north


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Duracell, het werkt perfect. Waar heb je dat script eigenlijk vandaan?
Pagina: 1