Ik dacht dat zoiets hier al was gevraagd maar ik kon het niet meer vinden, mss iemand anders wel, of iemand die het gewo0n weet.

Hoe forceer je een download?
Ik heb dus een script dat wat database updates doet etc, en daarna van mij een download moet starten, maar sommige bestanden willen niet gelijk, neem bijvoorbeeld .php, .pdf etc, die worden dan gewo0n geopent ...
header("Content-type: Application/octet-stream");
header("Content-Disposition: attachment; filename=tekst_bestand.txt");
readfile("downloads/tekst_bestand.txt");

Zo moet je er wel uitkomen he? :P
Ja dat zag ik ook al, maar vnawaar die readfile, die vat ik niet :S

header("Content-type: Application/octet-stream");
header("Content-Disposition: attachment; filename=tekst_bestand.txt");
header("Content-Transfer-Encoding: Binary");
header("Content-length: ".filesize($file));
readfile("downloads/tekst_bestand.txt");

Dit had ik dus al bedacht, op die readfile na, ik snap um dus ook echt niet :$
Hmm...kweet het ook niet echt. Heb hem ook maar van phphulp geplukt :)
Waarschijnlijk moet je dus eerst vertellen wat er gaat komen voor bestand, en het bestand vervolgens lezen om het te kunnen verzenden, omdat die anders niet wordt aangeroepen zeg maar.
readfile spuugt de inhoud van het bestand uit, ik ga het iig ff proberen :)
ja misschien dat die dat nodig heeft om een download te forceren?
Laat even weten of het gelukt is, ik geloof dat het mij ook nooit was gelukt. Misschien ook wel hoor, ben beetje te moe om het me te kunnen herinneren :)
Strict genomen: wanneer je het via een apache doet maakt apache hier mime headers bij. Dit is gebaseerd op de extensie. Hierna spuugt apache ook het bestand uit.

Wat je hier dus doet is om de webserver heen te draaien door zelf een mime header te maken, en dan het bestand uit te spugen.
Het gaat niet goed, als ik een plaatje download dan kan ie niet weergegeven worden ...
Kheb dus dit, alleen het wil niet :|
Kheb tot nu toe enkel met plaatjes geprobeer maar als dat al fout gaat ...

<?php
# Headers sturen
header('Content-type: Application/octet-stream');
header('Content-Disposition: attachment; filename=' . basename($_GET['d']));
header('Content-Transfer-Encoding: Binary');
header('Content-length: ' . filesize($_GET['d']));

# Bestand uitspugen
readfile($_GET['d']);

?>
Niemand die het weet?

Iig komt er nog een vraagje bij ^^
Zie hier!

Ga naar de bovenstaande URL, in Firefox krijg ik na het klikken op een foto netjes een popup maar in IE niet :|
De code heb ik vergeleken met die van w3schools en die is hetzelfde :?

[Eris edit] Link goed gemaakt ;)

Reageren