fopen mit Url / memory-limit
fopen mit Url / memory-limit
am 02.08.2006 15:53:41 von elbainfo
Hallo!
Ich möchte Datei (liegt auf externem Server)
mit fopen öffnen und dann direkt an
den Browser schicken.
Code (ohne Errorhandling, zwecks Übersicht)
// Beispiel $file_source = http://www.einwand.info/datei.exe
$rh = fopen($file_source, 'rb');
while (!feof($rh)) {
$Data = fread($rh, 1024);
echo $Data;
}
fclose($rh);
Funktioniert auch - aber nur solange die
externe Datei < MemoryLimit (hier 8MB) ist.
Tritt übrigens auch auf, wenn ich
mit readfile($file_source) arbeite.
Warum ist das so?
Wo werden von diesem Script mehr als 8MB benötigt?
ob_flush nach dem echo wird zwar auf der
einen oder anderen Internet-Seite empfohlen -
ist aber leider nicht möglich -
alte php-Version ohne Update-Möglichkeit.
Hat jemand eine Idee, wie ich über diesen
Weg Dateien > 50MB "ausliefern" kann?
Thanks!
Ciao
digo
Re: fopen mit Url / memory-limit
am 02.08.2006 16:06:57 von Frank Schenk
Wolfgang 'Digo' Hollin wrote:
> Hallo!
>=20
> Ich möchte Datei (liegt auf externem Server)
> mit fopen öffnen und dann direkt an
> den Browser schicken.
>=20
> Code (ohne Errorhandling, zwecks Übersicht)
>=20
> // Beispiel $file_source =3D http://www.einwand.info/datei.exe
> $rh =3D fopen($file_source, 'rb');
> while (!feof($rh)) {
> $Data =3D fread($rh, 1024);
> echo $Data;
> }
> fclose($rh);
>=20
>=20
> Funktioniert auch - aber nur solange die
> externe Datei < MemoryLimit (hier 8MB) ist.
man fpassthru
hth, Frank
Re: fopen mit Url / memory-limit
am 02.08.2006 16:24:49 von elbainfo
Frank Schenk wrote:
> man fpassthru
leider auch hier nach 8MB Ende mit
Allowed memory size of 8388608 bytes
exhausted (tried to allocate 8192 bytes)
in der Zeile fpassthru($rh);
$rh = fopen($file_source, 'rb');
fpassthru($rh);
fclose($rh);
Thanks
Ciao
digo
Re: fopen mit Url / memory-limit
am 02.08.2006 17:23:42 von Carsten Wiedmann
Wolfgang 'Digo' Hollin schrieb:
> // Beispiel $file_source = http://www.einwand.info/datei.exe
> $rh = fopen($file_source, 'rb');
> while (!feof($rh)) {
> $Data = fread($rh, 1024);
> echo $Data;
> }
> fclose($rh);
>
>
> Funktioniert auch - aber nur solange die
> externe Datei < MemoryLimit (hier 8MB) ist.
>
> ob_flush nach dem echo wird zwar auf der
> einen oder anderen Internet-Seite empfohlen -
> ist aber leider nicht möglich -
> alte php-Version ohne Update-Möglichkeit.
Da du ob_flush() ansprichst, ist denn das "output_buffering" generell auf
dem Server aktiviert?
Gruß
Carsten
Re: fopen mit Url / memory-limit
am 02.08.2006 17:51:12 von Sven Drieling
Wolfgang 'Digo' Hollin wrote:
Hallo,
> Frank Schenk wrote:
>> man fpassthru
>=20
> leider auch hier nach 8MB Ende mit
Ein global eingestellter Output-Buffering-Handler
wäre eine Möglichkeit als Ursache.
tschuess
[|8:)
Re: fopen mit Url / memory-limit
am 03.08.2006 07:38:27 von elbainfo
Carsten Wiedmann wrote:
> Da du ob_flush() ansprichst, ist denn das "output_buffering" generell
> auf dem Server aktiviert?
lt. phpinfo ist output_buffering auf off.
ich nehme an, das soll auch auf off sein?
Ciao
digo