At 16:15 21-7-03, you wrote:
Hi!

    I'm using PHP 4.3.2 and IIS 5.0.  I'm using the PHP header to cause the
webserver to download the file to the web browser.  Some of the time it work
and some of the other time, it doesnt.  I haven't figured out why until I
looked in the error log which showed hte problem...   See two clipping
below.

--snip--
      //Send Downloadable File(s) To Browsers...
    $total=$DownloadUpdateArray[$_REQUEST['dw_code']][0];
    header ("Content-Type: application/octet-stream");
    header ("Content-Length: ".filesize($total));
    header ("Content-Disposition: attachment;
filename=".$DownloadUpdateArray[$_REQUEST['dw_code']][1]);
    readfile($total);
--snip--

--snip--
[21-Jul-2003 09:15:33] PHP Fatal error:  Maximum execution time of 30
seconds exceeded in
D:\<<filepath>>\menu\tech_support.php on line 47
--snip

    So, how does the php header("content-disposition:attachment;
filename='***'") cause the php timeout in the first place, what seem to be
the problem?

It seems like $DownloadUpdateArray[$_REQUEST['dw_code']][1] takes so long. Or the previous code alwyas takes 29.9 secs, who knows.


You can tell php.ini that scripts can take some time longer dan 30 secs, or you can add a line to prolong the script time (http://nl2.php.net/function.set-time-limit) or you can try to make that function faster.


I have some extra headers to prevent several problems:


header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); // HTTP/1.0


header("Content-type: text/csv"); //adapt to your file type
header('Content-Disposition: inline; filename="filename.ext"');


Note that internet explorer 5.5 does not accept the 'attachment' part so for your header with 'attachement;' in it consider to add this conditional:
if (strstr($_SERVER["HTTP_USER_AGENT"],"MSIE 5.5")) {$att = "";} else {$att = " attachment;";}







Thanks,
 Scott



--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Reply via email to