FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Flitig postare
|
Hejsan,
Jag har ett problem med ett skript för nedladdning av stora filer. Anledningen till att jag kör med PHP för att läsa filen är att det är filer som ligger utanför html foldern då det är nedladdning för betalande kunder endast. Jag körde tidigare på min egen server, och då fungerade mitt skript bra även om servern i övrigt var märkbart slöare med att exekvera PHP. Men på den host jag kör med nu (servage) så tar det flera minuter att få en respons från mitt nedladdningsskript, men då "save as" dialogen väl kommer upp så går nedladdningen mycket snabbt. Detta är den kod jag har just nu som segar ner responsen: Kod:
if (!is_file($path) or connection_status()!=0) return(FALSE); header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: public", false); header("Content-Description: File Transfer"); header("Content-type: application/x-unknown"); header("Accept-Ranges: bytes"); header("Content-Disposition: attachment; filename=\"" . $name . "\";"); header("Content-Transfer-Encoding: binary"); header("Content-Length: " . filesize($path)); if ($file = fopen($path, 'rb')) { while(!feof($file) and (connection_status()==0)) { set_time_limit(0); print(fread($file, 1024*8)); flush(); ob_flush(); } $status = (connection_status()==0); fclose($file); } return($status); Filerna är mellan 100-600Mb. Tänkte jag skulle testa med cURL, men det väl inte att komma åt ett dokument utanför den publika delen av servern då? Någon som har några ideér om vad man kan hitta på för lösningar för att komma runt problemet? |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Mycket flitig postare
|
Varför inte köra readfile http://se.php.net/manual/en/function.readfile.php? Den outputar filen direkt.
|
||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Flitig postare
|
Jag har fått för mig att readfile skall vara långsammare än fopen och ta mycket minne för stora filer, men jag provade både det och fpassthru, men med samma slöa respons.
Då skriptet funkade bra då jag hostade på egen server tidigare så är det snarare en fråga om konfigurering av servern tror jag, men det verkar inte vara de vanliga problemen med stora filer och timeout eller minnesbegränsningar då den skickar filen ok tillslut. |
||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Supermoderator
|
Och allt annat går bra på servern? Det är inte servern i sig som är seg?
__________________
Jonny Zetterström se.linkedin.com/in/jonnyz | bjz.se | sajthotellet.com | kalsongkungen.se | zretail.se | zetterstromnetworks.se | webbhotellsguide.se | ekonominyheter24.se | nyamobiltelefoner.se | gapskratt.se | antivirusguiden.se | jonny.nu |
||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Flitig postare
|
I övrigt så exekverar nuvarande webhotellet PHP snabbare än min server gjorde, och skillnaden för nedladdningsskriptet är från några sekunder på min gamla sega server till över en minut nu.
Jag är i kontakt med servage och de tycker också det är märkligt att det är så segt men vet inte varför. De skall låta mig flytta till derast nyaste kluster och jag får väl hoppas att problemet försvinner då. |
||
![]() |
![]() |
Svara |
|
|