Forced download
Jeg har fundet et script her: http://www.eksperten.dk/spm/339397 der gør, at man kan sørge for, at brugeren for mulighed for at download ens fil. Jeg har lavet en smule om på det. Jeg har lagt det i et dokument kaldt "download.php". Når man så linker til dette skal man kunne sende en varible med, indeholdene filnanvet på den fil der skal downloades (filen skal ligge i mappen download). Mit script ser nu således ud:<?
if($fil){
$path = "download/";
header("Content-Disposition: attachment; filename=$fil");
header("Content-Type: application/octet-stream");
header("Content-Length: ".filesize($path.$fil));
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
header("Expires: ".gmdate("D, d M Y H:i:s", mktime(date("H")+2, date("i"), date("s"), date("m"), date("d"), date("Y")))." GMT");
$fp = fopen($path.$fil,"r");
print fread( $fp, filesize($path.$fil) );
fclose($fp);
exit();
}
?>
Desværre virker det ikke. Hvis jeg foreksempel laver et link på en anden side, som hedder "download.php?fil=hej.jpg", kommer der en dialogboks hvor der står følgende:
"Du er ved at hente filen: download.php?fil=hej.jpg fra mitdomæne.dk. Vil du åbne filen eller gemme den på computeren?"
Vælger man så at man vil gemme, kommer der en alert-box frem hvor der står:
"Internet Explorer kan ikke indlæse download.php?fil=hej.jpg fra mitdomæne.dk..."
Det ser altså ud til at filen download.php prøver at "download sig selv" i stedet for filen gemt i variablen fil. Af en eller anden grund går det dog alligevel galt. Hvad skal jeg gøre for at det virker korrekt?
Hono