Welcome to WebmasterWorld Guest from 54.145.208.64

Forum Moderators: coopster & jatar k

Message Too Old, No Replies

headers, octet-streams, & handling multiple requests

   
7:15 pm on Apr 28, 2007 (gmt 0)

5+ Year Member



I have a page with several links to different 'user' files (which are located outside the webserver). Clicking on the link executes a php file that does some user validation and returns the 'user' file via a header:

<?PHP ...

//force download dialog
header("Content-type: application/octet-stream\n");
header("Content-disposition: attachment;
filename=\"$file\"\n");
header("Content-transfer-encoding: binary\n");
header("Content-length: " . filesize($path) . "\n");

//send file contents
$fp=fopen($path, "r");
fpassthru($fp);
exit();

?>

The issue is, while they wait for one file to download they can't request another file until the script finishes streaming the first file. Is there a way around this?

I thought maybe using "Content-Type: multipart" might work. Anybody have and idea how I would do this?

12:54 am on May 2, 2007 (gmt 0)

5+ Year Member



Got it! It's the session PHP is worried about. Solution? write close the session.

After writing all your session variables (if any), add the following:
session_write_close();

... and yahtzee! it's working. Man, I love an easy fix.

12:57 am on May 2, 2007 (gmt 0)

WebmasterWorld Senior Member eelixduppy is a WebmasterWorld Top Contributor of All Time 5+ Year Member



Glad to see it, quixotic!

I was just looking into your question to see what I could come up with :) Thanks for sharing your solution.