Kom ihåg mig?
Home Menu

Menu


PHP skript för nedladdning av stora filer

Ämnesverktyg Visningsalternativ
Oläst 2007-02-13, 23:18 #1
blixtsystems blixtsystems är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2005
Inlägg: 442
blixtsystems blixtsystems är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2005
Inlägg: 442
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);
Jag har testat att mixtra runt med allt möjligt i feof loopen och i headers, men utan någon märkbar skillnad.
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?
blixtsystems är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-02-13, 23:22 #2
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
Varför inte köra readfile http://se.php.net/manual/en/function.readfile.php? Den outputar filen direkt.
WizKid är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-02-13, 23:44 #3
blixtsystems blixtsystems är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2005
Inlägg: 442
blixtsystems blixtsystems är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2005
Inlägg: 442
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.
blixtsystems är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-02-14, 08:56 #4
jonny jonny är inte uppkopplad
Supermoderator
 
Reg.datum: Sep 2003
Inlägg: 6 941
jonny jonny är inte uppkopplad
Supermoderator
 
Reg.datum: Sep 2003
Inlägg: 6 941
Och allt annat går bra på servern? Det är inte servern i sig som är seg?
jonny är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-02-14, 09:57 #5
blixtsystems blixtsystems är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2005
Inlägg: 442
blixtsystems blixtsystems är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2005
Inlägg: 442
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å.
blixtsystems är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 01:08.

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