PHP interesse |
|
Volgens mij werkt dat via de 'header'-functie in php.
Voorbeeld van PHPHULP.NL:
<?php
$dir = 'downloads/'; //geef een map aan met eindslash (. voor deze map)
if(isset($_GET['bestand'])) //als ?bestand= bestaat
{
if(eregi('../', $_GET['bestand']) == FALSE) //als er geen ../ in de bestandsnaam voorkomt, dus geen upmap wordt aangevraagd
{
if(file_exists($dir.$_GET['bestand'])) //en ?bestand=.. is ook nog eens een bestaand bestand is
{
header('Content-type: Application/octet-stream'); //zet de header dat het bestand gedownload moet worden
//en dat het dus niet in de browser afgespeeld kan worden
header('Content-Disposition: attachment; filename='.$_GET['bestand']); //geef aan welk bestand gedownload moet worden
readfile($dir.$_GET['bestand']); //en open vervolgens dat bestand
}
else //als het bestand niet bestaat
{
echo 'bestand bestaat niet'; //echo dat
}
}
else //als er wel ../ in de bestandsnaam voorkomt
{
echo 'Deze map is niet toegankelijk'; //echo dat dat niet mag
}
}
else //als ?bestand= niet is opgegeven
{
echo 'Geen bestand opgegeven'; //echo dat
}
?>
<?php $dir = 'downloads/'; //geef een map aan met eindslash (. voor deze map) if(isset($_GET['bestand'])) //als ?bestand= bestaat { if(eregi('../', $_GET['bestand']) == FALSE) //als er geen ../ in de bestandsnaam voorkomt, dus geen upmap wordt aangevraagd { if(file_exists($dir.$_GET['bestand'])) //en ?bestand=.. is ook nog eens een bestaand bestand is { header('Content-type: Application/octet-stream'); //zet de header dat het bestand gedownload moet worden //en dat het dus niet in de browser afgespeeld kan worden header('Content-Disposition: attachment; filename='.$_GET['bestand']); //geef aan welk bestand gedownload moet worden readfile($dir.$_GET['bestand']); //en open vervolgens dat bestand } else //als het bestand niet bestaat { echo 'bestand bestaat niet'; //echo dat } } else //als er wel ../ in de bestandsnaam voorkomt { echo 'Deze map is niet toegankelijk'; //echo dat dat niet mag } } else //als ?bestand= niet is opgegeven { echo 'Geen bestand opgegeven'; //echo dat } ?>
|