Connecting Tech Pros Worldwide Help | Site Map

fpassthru from remote URI

  #1  
Old July 17th, 2005, 09:45 AM
stefan.machwirth@debeka.de
Guest
 
Posts: n/a
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  
Old July 17th, 2005, 09:46 AM
Daniel Tryba
Guest
 
Posts: n/a

re: fpassthru from remote URI


stefan.machwirth@debeka.de 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

  #3  
Old July 17th, 2005, 09:47 AM
stefan.machwirth@debeka.de
Guest
 
Posts: n/a

re: fpassthru from remote URI


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
Closed Thread