phpbar.de logo

Mailinglisten-Archive

[php] Daten durch PHP-Skript tunneln

[php] Daten durch PHP-Skript tunneln

Oliver Fink OF_(at)_netuse.de
Mon, 14 Aug 2000 16:58:18 +0200


Hi!

Stefan Westermann schrieb:

[...]

> [...]
>  $filename = $row['target'];
>  $fd = fopen ($filename, "r");
>  $contents = fread ($fd, filesize ($filename));
>  fclose ($fd);
>  header("Content-type: " . $row['type']);
>  echo $contents;
> [...]
> Und hier beginnt das Problem, denn das Skript läd erst alles in den Speicher
> und gibt es dann aus.

So hast Du es ja auch programmiert. Du willst das _ganze_ File nach Content
lesen, deshalb hast Du ja auch filesize ($filename) geschrieben...

> Bei kleineren Dateien ist auch das kein Problem, doch bei Dateien die recht
> gross sind (über 100kB)
> ist das nicht mehr machbar. Es sollen später bis zu 50 MB grosse Dateien
> "getunnelt" werden.
> Kann mir jemand von euch vielleicht einen Tipp geben, wie das zu realisieren
> ist?

Vielleicht die Daten nicht auf einmal in einen String einlesen und dann auf
einmal ausgeben, sondern in einer Schleife häppchenweise einlesen und ausgeben,
also möglicherweise (UNGETESTET)

$filename = $row['target'];
$fd = fopen ($filename, "r");
header("Content-type: " . $row['type']);
while( $contents = fread ($fd, 1024) ) {
  echo $contents;
}
fclose ($fd);

So ungefähr müßte es klappen. Eventuell terminiert das nicht richtig, dann mußt
Du uf die Länge des Strings abfragen...

    Oliver
--
Oliver Fink
NetUSE AG, Siemenswall, D-24107 Kiel, Germany
Fon: +49 431 386435 00   --   Fax: +49 431 386435 99




php::bar PHP Wiki   -   Listenarchive