S skyman Medlem sedan juli 2001 2 450 inlägg Trådstart 13 feb. 2006 20:49 #1 Hej!
Jag vill kunna visa pdf:er tex och andra filer som jag har på min server.
Jag vill inte skriva:
<a href=www.minsida.se/filer/fil.pdf>Filen</a>
Utan jag vill att länken skall se ut så här:
<a href=www.minsida.se/fil.php?id=1>Filen</a>
Jag har försökt att lyckas få fram den genom detta script:
$sql="select * from jsr_downloads where id=".$id;
$result=mysql_query($sql);
$row = mysql_fetch_array($result, MYSQL_ASSOC);
header("Content-type: ".$row['type']."");
//header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=\"" . $row['filename'] . "\"");
header("Content-transfer-encoding: binary\n");
header("Content-length: " . filesize("downloads/new/" . $row['filename']) . "\n");
$fp = fopen("downloads/new/" . $row['filename'], "r");
fpassthru($fp);
Hitta lite kod här: http://www.webforum.nu/showthread.php?t=117495
Vad gör jag för fel? Det visas bara massa tecken, så filen hämtas men det visas på ett felaktigt sätt...
Help!
S skyman Medlem sedan juli 2001 2 450 inlägg Jag vet inte hur... men nu så funkar det...
Koden:
function download($id){
global $tpl;
$sql="select * from jsr_downloads where id=".$id;
$result=mysql_query($sql);
$row = mysql_fetch_array($result, MYSQL_ASSOC);
header("Content-type: ".$row['type']."");
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=\"" . $row['filename'] . "\"");
header("Content-transfer-encoding: binary\n");
header("Content-length: " . filesize("downloads/new/" . $row['filename']) . "\n");
$fp = fopen("downloads/new/" . $row['filename'], "r");
fpassthru($fp);
exit;
}
Kolla med t ex PHPMyAdmin att datan i databasen är korrekta. MIME-typen ($row['type') ska vara application/pdf för pdf och filnamnet ($row['filename']) ska bara innehålla namnet och inte hela sökvägen.
Om detta ligger på en publik server kan du skicka adressen i ett PM, så kan jag analysera hur http-huvudet ser ut.