Hej, hvis du kender noget til download af filer fra en MySQL database så læs
lige nedenstående fejlbeskrivelse.
Jeg har lavet en MySQL database indeholdende en masse forskellige filer, og
jeg forsøger nu at lave et download-script "Hentfil.php3" der kaldes fra min
hjemmeside med id'et på den fil der ønskes downloadet. Recordtypen for filen
er defineret som en longblob i MySQL.
Det nedenstående script virker kun delvist. Hvis jeg kører det kommer der
godtnok standard-dialogen med overskriften "Du har valgt at hente en fil fra
dette sted, hvor jeg har de to valg "Åbn filen fra dens nuværende placering"
eller "Gem filen på disken".
Men i linien der angiver filnavnet står der "sendfile.php3?id=1 fra
mitwebsted.dk." istedet for selve filnavnet.
Vælger jeg at gemme filen på disk, kommer selve standard-savedialogen og i
dette billede er filnavnet korrekt. Gem er testet og fungerer fint.
Vælger jeg derimod at åbne filen, får jeg samme billede igen, hvor jeg skal
vælge mellem at åbne eller gemme filen. Nu er filnavnet dog blevet
rigtigt!!! Og vælger jeg igen at åbne filen - ja så bliver den åbnet
korrekt!!!!
Jeg fatter intet, og vil blive meget taknemmelig for al den hjælp jeg kan
få.
Med venlig hilsen
HC Henriksen
email : hchhimself@hotmail.com
------------Script Sendfile.php3------------
<?PHP
$connection=mysql_connect("localhost","hch","hch");
$result=mysql_select_db("HCH", $connection);
$result=mysql_db_query("HCH","SELECT id, filnavn, filen FROM Files WHERE
id=$id");
if(mysql_num_rows($result)>0)
{
$row=mysql_fetch_row($result);
header("Content-type: application/octet-stream");
header("Content-Disposition: type=attachment; filename=\"$row[1]\"");
echo $row[2];
}
?>
|