Connecting Tech Pros Worldwide Help | Site Map

fpassthru from remote URI

 
LinkBack Thread Tools Search this Thread
  #1  
Old July 17th, 2005, 08:45 AM
stefan.machwirth@debeka.de
Guest
 
Posts: n/a
Default fpassthru from remote URI

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, 08:46 AM
Daniel Tryba
Guest
 
Posts: n/a
Default 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, 08:47 AM
stefan.machwirth@debeka.de
Guest
 
Posts: n/a
Default 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
 

Bookmarks

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Popular Articles

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 220,989 network members.