Bug #55510 [Opn->Fbk]: $_FILES 'name' missing first character after upload.

From: Date: Fri, 26 Aug 2011 23:02:34 +0000
Subject: Bug #55510 [Opn->Fbk]: $_FILES 'name' missing first character after upload.
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-162957@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=55510&edit=1

 ID:                 55510
 Updated by:         johannes@php.net
 Reported by:        aaron at gwmicro dot com
 Summary:            $_FILES 'name' missing first character after upload.
-Status:             Open
+Status:             Feedback
 Type:               Bug
 Package:            Filesystem function related
 Operating System:   Windows Server 2008 R2
 PHP Version:        5.3.8
 Block user comment: N
 Private report:     N

 New Comment:

Keeping state at "Feedback" until data requested by mafick is provided.


Previous Comments:
------------------------------------------------------------------------
[2011-08-26 20:46:53] aaron at gwmicro dot com

Yes, I will attempt to get this information to you. I can say that we were using 5.2.13 without
incident prior to updating to 5.3.8. After updating to 5.3.8, we were notified by users that they
could no longer download files that they were successfully uploading. That was when I determined the
missing first character. Because we didn't want to go backward, I put on the 5.4 version, and
the problem went away. Note that no changes were made in the PHP source during the process of
changing versions. I will try to back all that with the requested data.

------------------------------------------------------------------------
[2011-08-26 19:02:04] v-mafick at microsoft dot com

I've setup Apache 2.2.19 and PHP 5.3.8 (though not with mod_ssl) and have run the test script
you provided, but it doesn't produce the problem you reported (it works fine).

In your report, $_FILES['filename']['name'] reports the length of the string as
10, even though only 9 characters are displayed.

Is it possible that somewhere in your program you're converting between charsets or mangling
the filename.

Also, could you provide a packet capture of the network traffic between your web browser and your
web application. You can do this with Wireshark (Windows/Linux) or NetMon (Windows).

------------------------------------------------------------------------
[2011-08-25 19:46:39] aaron at gwmicro dot com

While I'm not enamored with the idea of running a beta in production, this problem appears to
be resolved in 5.4.0beta1-dev.

------------------------------------------------------------------------
[2011-08-25 19:36:54] aaron at gwmicro dot com

Description:
------------
After uploading a file using a multipart/form-data HTML form, the resulting file name is missing the
initial character (i.e. readme.txt becomes eadme.txt).

Server: Apache/2.2.19 (Win32) mod_ssl/2.2.19 OpenSSL/1.0.0d PHP/5.3.8

Test script:
---------------
<FORM ACTION="<? echo $_SERVER['PHP_SELF']; ?>" METHOD="POST"
ENCTYPE="multipart/form-data">
File: <INPUT TYPE="file" NAME="filename">
<INPUT TYPE="submit" VALUE="go">
</FORM>
<?
if (isset($_FILES)) {
	var_dump($_FILES);
}
?>

array(1) { ["filename"]=> array(5) { ["name"]=> string(10)
"eadme.txt" ["type"]=> string(10) "text/plain"
["tmp_name"]=> string(31) "C:\temp\file_upload\php7D44.tmp"
["error"]=> int(0) ["size"]=> int(3420) } } 

Expected result:
----------------
$_FILES['filename']['name'] should be intact rather than missing the first
character. 

["name"]=> string(10) "readme.txt"

Actual result:
--------------
$_FILES['filename']['name'] is missing the first character:

["name"]=> string(10) "eadme.txt"


------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=55510&edit=1


Thread (12 messages)

« previous php.bugs (#162957) next »