Visa ett inlägg
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