php download script - fejl 500

Tags:    php headers

Hej alle sammen

mit download script giver mig server error 500 hvis jeg er igang med at downloade en fil, som jeg stopper, og starter en ny en, jeg kan heller ikke downloade 2 filer på engang..

hvis jeg stopper filen og venter 45sec med at starte næste fil er det ingen problem.

Fold kodeboks ind/udPHP kode 


Fold kodeboks ind/udKode 


fejlen er at clienten ikke sender noget til serveren som så giver op efter 45 sec, er bare ik helt klar over hvordan jeg løser dette problem.

nogen bud?





4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 10 karma
Sorter efter stemmer Sorter efter dato
Hvis du har startet session, skal disse lukkes.

http://php.net/manual/en/function.session-write-close.php

Grunden er at sessions ikke lukkes før PHP scripts er færdige på server siden. Er readfile i færd med at læse en større fil vil det tage tid før readfile er færdig, og dermed PHP-scriptet.



Jeg kender ikke lige til php cyklus eller apache, men det lader til at dine headers ikke bliver flushed, formodentligt pga output caching, hvorfor en ny download vil være umulig før serveren har sluppet.

Kig evt her: http://php.net/manual/en/outcontrol.configuration.php

Lig især mærke til metoderne flush(), ob_start() og ob_end_flush()

Vh

Edit
der er også en helvedes masse kommentarer nederst på siden du måske kunne copy/paste herfra;

http://php.net/manual/en/function.header.php



Indlæg senest redigeret d. 21.09.2013 17:33 af Bruger #5789
har prøvet med output buffers, gjore ingen forskel, ellers tak for svaret :)

vil lige kigge kommentarene igennem



Hvis du har startet session, skal disse lukkes.

http://php.net/manual/en/function.session-write-close.php

Grunden er at sessions ikke lukkes før PHP scripts er færdige på server siden. Er readfile i færd med at læse en større fil vil det tage tid før readfile er færdig, og dermed PHP-scriptet.


Var lige præcis det der skulle til, 1000 tak :)



t