fpassthru from remote URI
Question posted by: stefan.machwirth@debeka.de
(Guest)
on
July 17th, 2005 09:45 AM
Hi!
I have a PHP page "transfer.php" and a MySQL db. The client should
download binary files by "http://.... /transfer.php?ID=xx", where the
ID is searched in the db and the real URI is read.
In the transfer.php the "Content-Encoding" and the
"Content-Disposition" header fields are set. Then I do a fpassthru() or
a readfile(), for example: readfile
("http://www.someserver.com/somefile.zip").
This works fine - theoretically... The problem is, that it takes a long
time befor the download dialog appears in the browser. I tried
readfile, I tried fpassthru, I tried "fopen ('http://...')" with an
"until feof"-loop. The script or the server first downloads the whole
file from the URL, and then passes the output buffer to the client :-(
Ah, I also tried ob_flush() and flush() ... no gain :-(
Is there a way to send the file data to the client while reading the
URL? I use PHP 4.3.7 and the CGI Gateway (Xitami in my test
environment).
2
Answers Posted
Join Bytes! wrote:[color=blue]
> Is there a way to send the file data to the client while reading the
> URL? I use PHP 4.3.7 and the CGI Gateway (Xitami in my test
> environment).[/color]
fopen/fsockopen should have worked. Code?
--
Daniel Tryba
Daniel Tryba wrote:
[color=blue][color=green]
>>Is there a way to send the file data to the client while reading the
>>URL? I use PHP 4.3.7 and the CGI Gateway (Xitami in my test
>>environment).[/color]
>
>
> fopen/fsockopen should have worked. Code?[/color]
The problem is located. Not PHP buffers cause the delay, but Xitami. I
could simulate it with a "echo $somewhat; flush(); sleep (2);"-loop.
Buffering was disabled in php.ini. These delayed script also did not
transfer line by line to the browser with Xitami. But in my real
environment with Apache it worked.
I found some hints about the Xitami buffering in other newsgroups and
boards. Unfortunately it is not editable :-( Don't understand this
strategy. Xitami is very tiny and excellent for a small developing
environment. But if they don't improve it I would have found the first
limitation... :-/
Stefan
|
|
|
What is Bytes?
We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights.
Get the best answers to your questions from over 197,047 network members.
Top Community Contributors
|