From: ben at mattersolutions dot com Operating system: RHEL3 (x86_64) PHP version: 5.1.1 PHP Bug Type: Apache2 related Bug description: Upload Corrupted
Description: ------------ Please forgive the large amount of text... most of it is contents of the file that is uploaded and corrupted to show you what is going wrong. Details and scripts in full at... http://www.phpbuilder.com/board/showthread.php?t=10314484 We've recently built a new box with the following specs: RHEL 3, Apache 2.0.46, PHP 5.1.1 The problem is that the upload is being corrupted during the upload. To test it we uploaded a simple text file with line numbers in, begins.... 1this is a test this is a test this is a test this is a test 2this is a test this is a test 3this is a test this is a test this is a test this is a test this is a test this is a test 4this is a test this is a test this is a test this is a test 5this is a test this is .. and so on.... for quite alot of line. The php.ini can accept a large upload (8M), that is the only change in the php.ini (although register_globals is on too) When the upload file is moved from the tmp_name to the correct location it is corrupted, see below. The lines are duplicated and there is a weird header at line 20. We've tried it with difference browsers and get the same results. MSIE on Win and Mac, Mozilla on Linux and Safari on Mac all with the same result. The upload script is very basic and just prints the $_FILES array if any error or uses move_uploaded_file().... We tested this function seperately and it moves files fine. 1this is a test this is a test this is a test this is a test 2this is a test this is a test 3this is a test this is a test this is a test this is a test this is a test this is a test 4this is a test this is a test this is a test this is a test 5this is a test this is a test 6this is a test this is a test this is a test this is a test this is a test this is a test 7this is a test this is a test this is a test this is a test 8this is a test this is a test 9this is a test this is a test this is a test this is a test this is a test this is a test 10this is a test this is a test this is a test this is a test 11this is a test this is a test 12this is a test this is a test this is a test this is a test this is a test this is a test 13this is a test this is a test this is a test this is a test 14this is a test this is a test 15this is a test this is a test this is a test this is a test this is a test this is a test 16this is a test this is a test this is a test this is a test 17this is a test this is a test 18this is a test this is a test this is a test this is a test this is a test this is a test 19this is a test this is a test this is a test this is a test 2-----------------------------7d51f8756021a Content-Disposition: form-data; name="image_file"; filename="C:\Documents and Settings\XXXXXX\My Documents\matter solutions\clients\XXXXXX\testfile.txt" Content-Type: text/plain 1this is a test this is a test this is a test this is a test 2this is a test this is a test 3this is a test this is a test this is a test this is a test this is a test this is a test 4this is a test this is a test this is a test this is a test 5this is a test this is a test 6this is a test this is a test this is a test this is a test this is a test this is a test 7this is a test this is a test this is a test this is a test 8this is a test this is a test 9this is a test this is a test this is a test this is a test this is a test this is a test 10this is a test this is a test this is a test this is a test 11this is a test this is a test 12this is a test this is a test this is a test this is a test this is a test this is a test 13this is a test this is a test this is a test this is a test 14this is a test this is a test 15this is a test this is a test this is a test this is a test this is a test this is a test 16this is a test this is a test this is a test this is a test 17this is a test this is a test 18this is a test this is a test this is a test this is a test this is a test this is a test 19this is a test this is a test this is a test this is a test 20this is a test this is a test 21this is a test this is a test this is a test this is a test this is a test this is a test 22this is a test this is a test this is a test this is a test 23this is a test this is a test 24this is a test this is a test this is a test this is a test this is a test this is a test 25this is a test this is a test this is a test this is a test 26this is a test this is a test 27this is a test this is a test this is a test this is a test this is a test this is a test 28this is a test this is a test this is a test this is a test 29this is a test this is a test 30this is a test this is a test this is a test this is a test this is a test this is a test 31this is a test this is a test this is a test this is a test 32this is a test this is a test 33this is a test this is a test this is a test this is a test this is a test this is a test 34this is a test this is a test this is a test this is a test 35this is a test this is a test 36this is a test this is a test this is a test this is a test this is a test this is a test 37this is a test this is a test this is a test this is a test 38this is a test this is a test 39this is a test this is a test this is a test this is a test this is a test this is a test 40this is a test this is a test this is a test this is a test 41this is a test this is a test 42this is a test this is a test this is a test this is a test t0this is a test this is a test 21this is a test this is a test this is a test this is a test this is a test this is a test 22this is a test this is a test this is a test this is a test 23this is a test this is a test 24this is a test this is a test this is a test this is a test this is a test this is a test 25this is a test this is a test this is a test this is a test 26this is a test this is a test 27this is a test this is a test this is a test this is a test this is a test this is a test 28this is a test this is a test this is a test this is a test 29this is a test this is a test 30this is a test this is a test this is a test this is a test this is a test this is a test 31this is a test this is a test this is a test this is a test 32this is a test this is a test 33this is a test this is a test this is a test this is a test this is a test this is a test 34this is a test this is a test this is a test this is a test 35this is a test this is a test 36this is a test this is a test this Reproduce code: --------------- <?php if($_POST["action"] == "Upload Image") { unset($imagename); if(!isset($_FILES) && isset($HTTP_POST_FILES)) $_FILES = $HTTP_POST_FILES; if(!isset($_FILES['image_file'])) $error["image_file"] = "An image was not found."; $imagename = basename($_FILES['image_file']['name']); if(empty($imagename)) $error["imagename"] = "The name of the image was not found."; if(empty($error)) { $newimage = "" . $imagename; $result = @move_uploaded_file($_FILES['image_file']['tmp_name'], $newimage); if(empty($result)) { $error["result"] = "There was an error moving the uploaded file."; print_r($_FILES); } else echo "<img src='".$newimage."' border=0>"; } } ?> <form method="POST" enctype="multipart/form-data" name="image_upload_form" action="<?php $_SERVER["PHP_SELF"];?>"> <p><input type="file" name="image_file" size="20"></p> <p><input type="submit" value="Upload Image" name="action"></p> </form> <?php if(is_array($error)) while(list($key, $val) = each($error)) echo $val."<br>\n"; ?> -- Edit bug report at http://bugs.php.net/?id=35913&edit=1 -- Try a CVS snapshot (PHP 4.4): http://bugs.php.net/fix.php?id=35913&r=trysnapshot44 Try a CVS snapshot (PHP 5.1): http://bugs.php.net/fix.php?id=35913&r=trysnapshot51 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=35913&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=35913&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=35913&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=35913&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=35913&r=needscript Try newer version: http://bugs.php.net/fix.php?id=35913&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=35913&r=support Expected behavior: http://bugs.php.net/fix.php?id=35913&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=35913&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=35913&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=35913&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=35913&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=35913&r=dst IIS Stability: http://bugs.php.net/fix.php?id=35913&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=35913&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=35913&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=35913&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=35913&r=mysqlcfg
