Hallo ik probeer een dir op me web server de delen voor dat mensen kunnen zien wat erin zit en kunnen downloaden. Ik heb een script waarmee iemand kan de inhoud zien maar niet selecteren. Zou iemand mij opweg kunnen helpen hoe ik dat kan doen. Ben nieuw met php dus....
Ik nu deze script :

<?php
$d=opendir("transmissie");
while ($bestanden=readdir($d) )
{
$bnaam="transmissie/".$bestanden;
if (is_file($bnaam) )
{ print ("$bestanden<br>"); }
}
closedir($d);
?>


Alvast bedankt voor jullie reactie
Wel zien, maar niet selecteren?

Hoe bedoel je? Gaat het om tekst waarvan je niet wil dat anderen het kunnen copiƫren of zo?
Van php.net:
<?php
// Note that !== did not exist until 4.0.0-RC2

if ($handle = opendir('/path/to/files')) {
echo "Directory handle: $handle\n";
echo "Files:\n";

/* This is the correct way to loop over the directory. */
while (false !== ($file = readdir($handle))) {
echo "$file\n";
}

/* This is the WRONG way to loop over the directory. */
while ($file = readdir($handle)) {
echo "$file\n";
}

closedir($handle);
}
?>
SanThe schreef op 27.08.2008 20:06
Van php.net:
<?php
// Note that !== did not exist until 4.0.0-RC2

if ($handle = opendir('/path/to/files')) {
echo "Directory handle: $handle\n";
echo "Files:\n";

/* This is the correct way to loop over the directory. */
while (false !== ($file = readdir($handle))) {
echo "$file\n";
}

/* This is the WRONG way to loop over the directory. */
while ($file = readdir($handle)) {
echo "$file\n";
}

closedir($handle);
}
?>


hallo Santhe, sorry dat ik zo laat reageer op je reactie maar mij PC was defect. Ik heb deze script inmiddels geprobeerd maar helaas is het niet helemaal wat ik bedoel. Ik zie inderdaad een lijst van de subdir en bestaanden maar ik kan ze niet openen en of downloaden. Weet jij misschien of iemand anders hoe dat wel kan. Ik ben nieuw met PHP en is dat voor mij nog abracadabra... Alvast bedankt...
@Emmanuel Delay en @teuneboon
Ik bedoel inderdaad dat ik de directory structuur wil zien en dat ik daar uit een subdir kan open maken en een bestand kan downloaden.

In ieder geval bedankt voor jullie reactie en misschien dat jullie een idee hebben hoe ik dat het best kan doen.

Makkelijkere manier: (php 5.1.x +)

<?php
$Directory = "./"; // hier de uit te lezen dir
if(isset($_GET['file'])){
    if(file_exists($_GET['file'])){
        header("Cache-Control: public, must-revalidate");
        header("Pragma: hack");
        header("Content-Type: application/octet-stream");
        header("Content-Length: " .(string)(filesize($_GET['file'])) );
        header('Content-Disposition: attachment; filename="'.basename($_GET['file']).'"');
        header("Content-Transfer-Encoding: binary\n");
        echo file_get_contents($_GET['file']);
    }else{
        echo "Sorry, bestand bestaat niet.";
    }
}else{
    $dir = scandir($Directory); 
    echo "<h1>Map: ".$Directory."</h1>";
    foreach($dir as $file){
        if(is_file($Directory."/".$file)){
            echo "<a href=\"".basename(__FILE__)."?file=".$Directory."/".$file."\">".$file."</a><br/>";
        }
    }
}
?> 
Tha Wizekid schreef op 01.09.2008 15:23
Makkelijkere manier: (php 5.1.x +)

<?php
$Directory = "./"; // hier de uit te lezen dir
if(isset($_GET['file'])){
    if(file_exists($_GET['file'])){
        header("Cache-Control: public, must-revalidate");
        header("Pragma: hack");
        header("Content-Type: application/octet-stream");
        header("Content-Length: " .(string)(filesize($_GET['file'])) );
        header('Content-Disposition: attachment; filename="'.basename($_GET['file']).'"');
        header("Content-Transfer-Encoding: binary\n");
        echo file_get_contents($_GET['file']);
    }else{
        echo "Sorry, bestand bestaat niet.";
    }
}else{
    $dir = scandir($Directory); 
    echo "<h1>Map: ".$Directory."</h1>";
    foreach($dir as $file){
        if(is_file($Directory."/".$file)){
            echo "<a href=\"".basename(__FILE__)."?file=".$Directory."/".$file."\">".$file."</a><br/>";
        }
    }
}
?> 


Bedankt voor je reactie, maar helaas doet ie het niet. Ik heb php 5.1.7.3

Ik heb de volgende script :
<?php
$Directory = "./map"; // hier de uit te lezen dir
if(isset($_GET['file'])){
if(file_exists($_GET['file'])){
header("Cache-Control: public, must-revalidate");
header("Pragma: hack");
header("Content-Type: application/octet-stream");
header("Content-Length: " .(string)(filesize($_GET['file'])) );
header('Content-Disposition: attachment; filename="'.basename($_GET['file']).'"');
header("Content-Transfer-Encoding: binary\n");
echo file_get_contents($_GET['file']);
}else{
echo "Sorry, bestand bestaat niet.";
}
}else{
$dir = scandir($Directory);
echo "<h1>Map: ".$Directory."</h1>";
foreach($dir as $file){
if(is_file($Directory."/".$file)){
echo "<a href=\"".basename(__FILE__)."?file=".$Directory."/".$file."\">".$file."</a><br/>";
}
}
}
?>

doe ik soms iets niet goed ?
Krijg je een fout ofzo?
Of zie je helemaal geen bestanden?
Klopt de $Directory wel?
Jelle Posthuma schreef op 01.09.2008 16:21
Krijg je een fout ofzo?
Of zie je helemaal geen bestanden?
Klopt de $Directory wel?


ik zie helemaal niets. de directory is map in de root.
staan er files in de map?? want alleen de files worden met dit script uitgelezen.

hiermee worden ook de mappen uitgelezen:
<?php
$Directory = "./"; // hier de uit te lezen dir

if(isset($_GET['dir'])){
$subdir = $_GET['dir'];
}else{
$subdir = "";
}
if(isset($_GET['file'])){
if(file_exists($_GET['file'])){
header("Cache-Control: public, must-revalidate");
header("Pragma: hack");
header("Content-Type: application/octet-stream");
header("Content-Length: " .(string)(filesize($_GET['file'])) );
header('Content-Disposition: attachment; filename="'.basename($_GET['file']).'"');
header("Content-Transfer-Encoding: binary\n");
echo file_get_contents($_GET['file']);
}else{
echo "Sorry, bestand bestaat niet.";
}
}else{
$dir = scandir($Directory."/".$subdir);
echo "<h1>Map: ".$Directory."/".$subdir"</h1>";
foreach($dir as $file){
if(is_file($Directory."/".$subdir.$file)){
echo "<a href=\"".basename(__FILE__)."?file=".$Directory."/".$subdir.$file."\">".$file."</a><br/>";
}else if(is_dir($Directory."/".$file)){
echo "<a href=\"".basename(__FILE__)."?dir=".$Directory."/".$subdir.$file."/\">".$file."</a><br/>";
}
}
}
?>

Reageren