/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Upload og download
Fra : Bo Rattenborg


Dato : 27-11-02 06:38

Hvis jeg har en side hvor der kan uploades filer til, disse filer tildeles
navne ud fra en MySQL tabel, f.eks. filnavnet 2325.dat, hvor 2325 er iden
fra tabellen, og .dat blot er en extiontion jeg bestemmer. Men samtidig med
dette gemmes filens oprindelige navn i tabellen.

Når så nogen ønsker at downloade filen, så linkes der f.eks. til
file_download.php?id=2325. I file_download.php skal filen så hentes omdøbes
og sendes til browseren med det originale filnavn, men hvordan gør jeg dette
? kan det klares med Headers ?

Mvh
Bo



 
 
Morten Winther (27-11-2002)
Kommentar
Fra : Morten Winther


Dato : 27-11-02 07:34


"Bo Rattenborg" <bo.rattenborg@[no spam]mail.dk> skrev i en meddelelse
news:as1l8l$i2t$1@sunsite.dk...
> Hvis jeg har en side hvor der kan uploades filer til, disse filer tildeles
> navne ud fra en MySQL tabel, f.eks. filnavnet 2325.dat, hvor 2325 er iden
> fra tabellen, og .dat blot er en extiontion jeg bestemmer. Men samtidig
med
> dette gemmes filens oprindelige navn i tabellen.
>
> Når så nogen ønsker at downloade filen, så linkes der f.eks. til
> file_download.php?id=2325. I file_download.php skal filen så hentes
omdøbes
> og sendes til browseren med det originale filnavn, men hvordan gør jeg
dette
> ? kan det klares med Headers ?

Lav en mappe der hedder vis som indeholder 2 filer: .htaccess & fil

..htaccess:
ForceType application/x-httpd-php

fil:

$url_vars = explode ("/", $PATH_INFO);
// hend id fra url
$id = $url_vars[1];

// slå id op i database og find filen. Check o.s.v.
// oplysninger gemmes i $filer_row

// header
header("Content-type: " . $filer_row['fil_type']);
header("Content-disposition: " . $filer_row['fil_navn']);

// vis fil
$sti = "/usr/home/lala/" . $filer_row['id'] . ".dat";
readfile($sti);
exit;

På denne måde vil dette virke i din browser:

www.test.dk/vis/fil/2325/test.zip

Dette virker i alle browsere i modsætning til file_download.php?id=2325


/ morten













Peter Brodersen (28-11-2002)
Kommentar
Fra : Peter Brodersen


Dato : 28-11-02 01:15

On Wed, 27 Nov 2002 07:33:48 +0100, "Morten Winther" <mw@get2net.dk>
wrote:

>.htaccess:
>ForceType application/x-httpd-php
>
>fil:

Hvorfor ikke bare bruge MultiViews og kalde filen for fil.php? Så vil
www.test.dk/vis/fil/2325/test.zip stadigvæk virke.

--
- Peter Brodersen

Niels Andersen (28-11-2002)
Kommentar
Fra : Niels Andersen


Dato : 28-11-02 10:32

Morten Winther wrote in <as1osc$35n$1@sunsite.dk>:
>> Når så nogen ønsker at downloade filen, så linkes der f.eks. til
>> file_download.php?id=2325. I file_download.php skal filen så hentes
>> omdøbes og sendes til browseren med det originale filnavn, men hvordan
>> gør jeg dette? kan det klares med Headers ?
> Lav en mappe der hedder vis som indeholder 2 filer: .htaccess & fil
[...]

Jeg må hellere tilføje, at der ifølge RFC'en er mulighed for at sætte
filnavnet i headeren. Det er bare så godt som umuligt at få til at virke i
Internet Explorer, og måske også i nogle andre browsere.

Ved at bruge URL-tricket slipper du for at bekymre dig om hvad browseren har
implementeret, og hvorvidt det virker, hvad dette angår.

--
Mvh.

Niels Andersen
(la nels. anersyn.)

Bo Rattenborg (28-11-2002)
Kommentar
Fra : Bo Rattenborg


Dato : 28-11-02 18:55

Er det muligt at teste .htaccess på en win2000 / Apache maskine ?



Niels Andersen (28-11-2002)
Kommentar
Fra : Niels Andersen


Dato : 28-11-02 19:06

Bo Rattenborg wrote in <as5kob$1mo$1@sunsite.dk>:
> Er det muligt at teste .htaccess på en win2000 / Apache maskine ?

Ork ja. .htaccess fungerer fint i Windows.

Der vil muligvis være noget forskel mht. stier, men det ville jo være det
samme med to forskellige unix-maskiner.

Ellers tror jeg ikke lige der er noget... Så skulle det da være noget meget
eksotisk. :)

(Der er oprettet en apache-specifik gruppe: dk.edb.internet.software.apache)

--
Mvh.

Niels Andersen
(la nels. anersyn.)

Søg
Reklame
Statistik
Spørgsmål : 177503
Tips : 31968
Nyheder : 719565
Indlæg : 6408545
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste