From: jshay at dakotacom dot net Operating system: RedHat Enterprise 3.0 PHP version: 4.4.0 PHP Bug Type: *General Issues Bug description: PHP writing empty files
Description: ------------ A simple upload script uploads the file, fully intact, but then a few seconds later zero's out the file making a zero byte length file. Reproduce code: --------------- <? $size = exec("ls -l $upload_item"); if ($upload_item) { print("<br />uploading to section = $section\n"); print("<br />file name = $upload_item_name\n"); print("<br />file size = $upload_item_size bytes\n"); print("<br />file in tmp = $size\n"); if (copy ($upload_item, "./$upload_item_name")) { print("<html><body>\n"); print("<p><b>your file was successfully uploaded!</b></p>\n"); print("<p>\n"); print("please note your file name - <b>$upload_item_name</b>\n"); print("<br />you will need to enter it in the appropriate form.\n"); print("</p>\n"); print("</body></html>"); } else { print("can't be copied - there may be another file with this name\n"); } } ?> Expected result: ---------------- The file should get written to the directory specified from the form and named the same name as the uploaded file. Actual result: -------------- Appropriate directories are writable by the apache user/group. Not a quota issue. 'upload_max_filesize' is set to 55 megs. No error log is generated as PHP has, as far as it thinks, written the file. What happens is the file gets uploaded to /tmp (full permisssions on /tmp) and then copied to the requested directory. I can grab a directory listing and see it in the specified directory in whole - original size and name. If I refresh the page again the file is zero'd out but with the original filename. I'm hesitant to call this a bug but having bounced this off other contacts in the industry I am left with no choice. -- Edit bug report at http://bugs.php.net/?id=34822&edit=1 -- Try a CVS snapshot (php4): http://bugs.php.net/fix.php?id=34822&r=trysnapshot4 Try a CVS snapshot (php5.0): http://bugs.php.net/fix.php?id=34822&r=trysnapshot50 Try a CVS snapshot (php5.1): http://bugs.php.net/fix.php?id=34822&r=trysnapshot51 Fixed in CVS: http://bugs.php.net/fix.php?id=34822&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=34822&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=34822&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=34822&r=needscript Try newer version: http://bugs.php.net/fix.php?id=34822&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=34822&r=support Expected behavior: http://bugs.php.net/fix.php?id=34822&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=34822&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=34822&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=34822&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=34822&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=34822&r=dst IIS Stability: http://bugs.php.net/fix.php?id=34822&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=34822&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=34822&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=34822&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=34822&r=mysqlcfg