Re: File download by php header...
| From: | Chris Hayes | Date: | Mon, 21 Jul 2003 14:34:16 +0000 |
| Subject: | Re: File download by php header... | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-156074@lists.php.net to get a copy of this message | ||
At 16:15 21-7-03, you wrote:
Hi!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:I'm using PHP 4.3.2 and IIS 5.0. I'm using the PHP header to cause thewebserver 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 --snipSo, how does the php header("content-disposition:attachment;filename='***'") cause the php timeout in the first place, what seem to be the problem?
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