Ik was vandaag bezig met mijn persoonlijke website, dat echt bedoeld is voor mij alleen. Nu was ik bezig met het maken van een File Manager zodat ik overal bij bepaalde bestanden kan.
Nu probeer ik alleen te zorgen dat als ik bijvoorbeeld naar deze link ga: http://site.nl/bestanden/school/foto.png
Dat het plaatje dan meteen gedownload wordt.
Dus niet als je naar de link gaat dat je dan het plaatje te zien krijgt op het scherm maar dat het meteen gedownload word. Iemand enig idee hoe ?
Dit is juist het tegenovergestelde van wat ik wil ? Het is juist de bedoeling dat als ik bijvoorbeeld dit plaats: <a href="http://site.nl/bestanden/school/foto.png">OPEN</a> dat je dan meteen het plaatje download. Niet dat het plaatje juist niet gedownload kan worden ;)
Dat zeg ik: die regel in .htaccess dwingt een download af.
Maar afgaande op het commando “OPEN” in je link, moet het bestand kennelijk worden geopend? Waarin dan? Moet het bijvoorbeeld direct in Photoshop worden geopend?
En dan is het de bedoeling dat als ik op "Opslaan" klikt dat ik het bestand dan automatisch download doordat ik naar de link van het bestand word gestuurd dus : "http://site.nl/bestanden/school/foto.png" het is dan vervolgens niet de bedoeling dat het ergens in wordt geopend.
Ah koen geweldig, dit is inderdaad wat ik zocht. Heb het nu wel met een omweggetje gedaan:
<a href="file.php?file='.$file->getPath().'">'.$file->getName().'</a>
File.php :
<?php
if(isset($_GET['file'])){
header('Content-Disposition: attachment; filename="'.$_GET['file'].'"');
}
?>
Maar dit kan ik wel even mooi maken met Mod_rewrite en dan even wat beveiliging inbouwen ;)
De HTTP-methode heeft er weinig mee te maken. Als je de rechten op het opgevraagde bestand niet controleert, is directory traversal mogelijk. En daarmee kun je werkelijk alles downloaden, bijvoorbeeld een config-bestand met je databaseaccount.