#30925 [Opn->Bgs]: HTTP POST file upload problem
| From: | edink@php.net | Date: | Mon, 29 Nov 2004 01:39:22 +0000 |
| Subject: | #30925 [Opn->Bgs]: HTTP POST file upload problem | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-69585@lists.php.net to get a copy of this message | ||
ID: 30925
Updated by: edink@php.net
Reported By: himself at zhwau dot net
-Status: Open
+Status: Bogus
Bug Type: Unknown/Other Function
Operating System: Windows XP
PHP Version: 5.0.2
New Comment:
Submitted twice.
Previous Comments:
------------------------------------------------------------------------
[2004-11-29 01:30:08] himself at zhwau dot net
Description:
------------
When trying to POST upload a file with the proper <FORM> tag, including
the proper enctype and all (but without size restriction with
MAX_FILE_SIZE as in manual example), the receiving script defined in
ACTION results in move_uploaded_file() returning TRUE even though the
file wasn't moved at all.
Odd things happen when you try reloading the ACTION target page which
makes Firefox repost the data - the second time around, the PHP script
moves the file, even though it is assigned a different temp file name.
Then everything works fine.
Could this be the result of a write-behind process for the filesystem
which makes move_uploaded_file() return true even if it didn't move the
actual file?
Reproduce code:
---------------
<?php
// The receiving script
$ime = $_FILES['slika']['name'];
if (move_uploaded_file($_FILES['slika']['tmp_name'], $ime)) {
// Here i execute the code responsible for handling the file
}
else {
// Report that the upload failed
}
?>
Expected result:
----------------
Should execute the 'ELSE' part of the sentence, since the
move_upload_file() should return true in the case of a failed file move
- unless it only detects whether or not the tmp_name file exists.
Actual result:
--------------
First time around, the move_uploaded_file() returns true (meaning the
temp file exists) but the file isn't moved to $ime (i.e. the same dir
where the script is executed).
If you reload the page (and repost the same data), the tmp_name changes
while all stays the same and the file is successfully moved.
Apache 2.0.52 / PHP 5.0.2 running on WinXP SP2
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=30925&edit=1