ID: 43306 Comment by: webmaster at anpera dot net Reported By: d dot tas40 at chello dot nl Status: No Feedback Bug Type: Scripting Engine problem Operating System: Windows XP PHP Version: 5.2.5 New Comment:
I have a similar problem with PHP 5.2.4 / 5.2.5 with Apache2.2 under Windows 2003. Downloaded files are missing exactly 15 bytes at the end. ZIP and RAR files can't be opened correctly after download but definitely are okay on the server's hard drive. With $filesize=filesize($filename)+15; the downloads are working. $size = @filesize($filename)+15; header('Pragma: public'); [...] header("Content-Length: $size"); $fp = @fopen($filename, 'rb'); [...] while (!feof($fp)){ echo fread($fp, 8192); } fclose($fp); [...] flush(); Previous Comments: ------------------------------------------------------------------------ [2007-11-23 01:00:00] php-bugs at lists dot php dot net No feedback was provided for this bug for over a week, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open". ------------------------------------------------------------------------ [2007-11-15 22:46:55] [EMAIL PROTECTED] Are you sure there aren't any errors happening there? Check the file you downloaded using e.g. notepad.. ------------------------------------------------------------------------ [2007-11-15 18:17:43] d dot tas40 at chello dot nl Description: ------------ File Download Problem. Reproduce code: --------------- // set headers header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: public"); header("Content-Description: File Transfer"); header("Content-Type: $mtype"); header("Content-Disposition: attachment; filename=\"$filename\""); header("Content-Transfer-Encoding: binary"); header("Content-Length: " . $filesize); // download // @readfile($file_path); $file = @fopen($file_path,"rb"); if ($file) { while(!feof($file)) { print(fread($file, 1024*8)); flush(); if (connection_status()!=0) { @fclose($file); die(); } } @fclose($file); } Expected result: ---------------- It works fine with PHP v5.2.3/4 but after I updated my PHP version to 5.2.5 it doesn't work.. I click on the download link, but the downloaded file always corrupt.. xxx.rar: The archive is either in unknown format or damaged! xxx.rar: The archive is either in unknown format or damaged! ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=43306&edit=1