WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Byta namn på fil innan nedladdning (https://www.wn.se/forum/showthread.php?t=1041211)

linus1 2010-03-29 22:17

Byta namn på fil innan nedladdning
 
Tjenare!

Har lite strul med mina filnamn :)

Jag har en fil på webbservern "123.exe".

När besökaren laddar hem filen vill jag att den ska heta "linus.exe".


Så här långt har jag kommit:

header("Content-Length:123156");
header("Content-type:application/exe");
header("Content-Disposition:attachment;filename=linus.exe'");


Jag antar att jag kan använda mig av "readfile()" för att läsa in filen sen ladda den igen. Vill dock tro att det finns ett lättare sätt?

Jonas 2010-03-30 08:30

Här har du det hela:
PHP-kod:

$real_file '123.exe';
$virtual_file 'linus.exe';

header("Content-Length: " filesize($real_file));
header("Content-type: application/octet-stream"); 
header("Content-Disposition: attachment; filename='".$virtual_file."'");
readfile($real_file); 

Men tänk på att använda PHP's binärsäkra funktioner eftersom annars kan filerna bli korrupta. Samt att felrapportering är avslaget (display_errors = off) eftersom detta annars avslöjar ev. sökvägar till "riktiga" filer.

emilv 2010-03-30 09:03

Jonas, byt ut strlen till filesize

Jonas 2010-03-30 10:06

Citat:

Ursprungligen postat av emilv (Inlägg 20348804)
Jonas, byt ut strlen till filesize

Tack för påpekandet, får skylla på att man var nyvaken & skrev från utan att testa

linus1 2010-04-03 10:24

Det fungerade finfint! :) Tack!


Alla tider är GMT +2. Klockan är nu 23:02.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson