Avatar billede htx98i17 Professor
04. januar 2009 - 13:53 Der er 7 kommentarer og
1 løsning

fildownload uden at PHP indlæser filen

Jeg har nogle store filer (300 mb) liggende som jeg gerne vil have php til at henvise til, men med et andet filnavn end det oprindelige.

Jeg har fundet følgende på eksperten som kan illustrere hvad jeg mener:

$fil = "http://upload.domain.dk/fil.ext"; // eller
$fil = "/upload/fil.ext"; //
header( 'content-disposition: attachment; filename="'. $_GET['fil'] . '"' );
readfile( $_GET['fil'] );

Men så vil PHP skulle indlæse/loade hele den 300 mb store fil, inden den downloades.

1. Vil det give problemer?

2. Er det ikke muligt at få henvist til filen og downloade den med et anden filnavn, uden at PHP skal indlæse filen?
Avatar billede htx98i17 Professor
04. januar 2009 - 15:53 #1
Når jeg prøver en 300mb fil:
Fatal error</b>:  Allowed memory size of 128mb exhausted (tried to allocate 298mb)

I min phpinfo kan jeg finde:
memory_limit: 128mb

Er det serverens RAM den tærer på der?
For lad os nu sige at der kun var 128mb ram på serveren, så ville det slet ikke være muligt at få PHP til at indlæse 300 mb?
Avatar billede htx98i17 Professor
04. januar 2009 - 16:12 #2
Et forsøg på at løse det problem:
ini_set("memory_limit","419430400"); //400 mb

Men giver følgende fejl:
Fatal error</b>:  Allowed memory size of 419430400 bytes exhausted (tried to allocate 313176065  bytes)

weird
Avatar billede majbom Novice
04. januar 2009 - 16:18 #3
jeg forstår ikke hvad du vil, hvorfor skal php indlæse filen?

hvorfor skal den kunne tilgås med et "forkert" navn, og hvordan skal den vide hvilken fil der er tale om, hvis den ikke hedder hvad man skriver?
Avatar billede erikjacobsen Ekspert
04. januar 2009 - 16:23 #4
Du skal læse filen i mindre klumper med http://php.net/fread
Avatar billede htx98i17 Professor
04. januar 2009 - 16:25 #5
Det var mange spørgsmål :)

Det er fordi at filens oprindelige navn er sessionid'et. Hvilken jo ikke er vildt beskrivende.

Altså med readfile(sessionid-filnavn) læser PHP filens indhold for at kunne smide den videre til brugeren med et bedre filnavn.
Avatar billede htx98i17 Professor
04. januar 2009 - 17:05 #6
tak for deltagelsen
Avatar billede majbom Novice
04. januar 2009 - 17:30 #7
selv tak, fandt du en løsning?
Avatar billede htx98i17 Professor
04. januar 2009 - 17:51 #8
fread() vil løse problemet
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester