ID: 13601
Updated by: sniper
Reported By: [EMAIL PROTECTED]
Old Status: Open
Status: Feedback
Bug Type: Apache related
Operating System: Linux (Red Hat 7)
PHP Version: 4.0.6
New Comment:
I would guess this has something to do with proxy being
in between..is there one?
--Jani
Previous Comments:
------------------------------------------------------------------------
[2001-10-22 03:58:23] [EMAIL PROTECTED]
Yes.
In the script,
$size=filesize($file);
Where $file is the filename and path.
To prove that it's correct, I have printed the value. Also, both NS and IE (when it
works, ie. not through a proxy), display the correct file size and bytes remaining,
etc.
------------------------------------------------------------------------
[2001-10-21 01:08:59] [EMAIL PROTECTED]
Is the $size correct for the file?
------------------------------------------------------------------------
[2001-10-08 13:55:47] [EMAIL PROTECTED]
The following code:
$size = filesize($userfile);
$fp=fopen($userfile,"r");
header("Pragma: no-cache");// HTTP/1.0
header("Cache-Control: no-cache, must-revalidate");// HTTP/1.1
header("Content-Type: application/octet-stream");
if(preg_match("/MSIE 5.5/", $HTTP_USER_AGENT))
header("Content-Disposition: filename=$userfile");
else
header("Content-Disposition: attachment; filename=$userfile");
header("Content-Length: $size");
header("Content-Transfer-Encoding: binary\n");
fpassthru($fp);
when run under Linux/Apache results in a zero length file on MS IE 5.5 when connecting
via an ISP or proxy. I have tried various ISPs all with the same result. All is fine
with Netscape, or with a direct LAN connection.
Also, if the same PHP script is run under Windows NT 4.0 / IIS 5.0 all is well.
By removing the line: header("Content-Length: $size"); the download is successful, but
we lose any progress bar so this workaround is far from ideal.
------------------------------------------------------------------------
[2001-10-08 13:52:25] [EMAIL PROTECTED]
The following code:
$size = filesize($file);
header("Pragma: no-cache");// HTTP/1.0
header("Cache-Control: no-cache, must-revalidate");// HTTP/1.1
header("Content-Type: application/octet-stream");
if(preg_match("/MSIE 5.5/", $HTTP_USER_AGENT))
header("Content-Disposition: filename=$userfile");
else
header("Content-Disposition: attachment; filename=$userfile");
header("Content-Length: $size");
header("Content-Transfer-Encoding: binary\n");
fpassthru($fp);
when run under Linux/Apache results in a zero length file on MS IE 5.5 when connecting
via an ISP or proxy. I have tried various ISPs all with the same result. All is fine
with Netscape, or with a direct LAN connection.
Also, if the same PHP script is run under Windows NT 4.0 / IIS 5.0 all is well.
By removing the line: header("Content-Length: $size"); the download is successful, but
we lose any progress bar so this workaround is far from ideal.
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=13601&edit=1
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]