Bug #14898 Updated: $HTTP_POST_FILES['uploadedfile']['name'] error
| From: | yohgaki@php.net | Date: | Wed, 03 Apr 2002 07:45:07 +0000 |
| Subject: | Bug #14898 Updated: $HTTP_POST_FILES['uploadedfile']['name'] error | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-3885@lists.php.net to get a copy of this message | ||
ID: 14898
Updated by: yohgaki@php.net
Reported By: a1593@ma.ks.edu.tw
-Status: Open
+Status: Analyzed
Bug Type: HTTP related
-Operating System: linux slackware8
+Operating System: ANY
-PHP Version: 4.1.1
+PHP Version: ANY
New Comment:
It's known issue that PHP does not work well with multi-byte file
names.
This is better to be fixed someday. We don't know encoding used for
filename, but it should be useful still.
Previous Comments:
------------------------------------------------------------------------
[2002-02-08 10:36:38] a1593@ma.ks.edu.tw
it is better to say that this is an improvement to make the upload
function can treat mulit-byte codes like BIG5. there is a explanation
in my first post.
------------------------------------------------------------------------
[2002-02-07 22:52:59] shiflett@php.net
Is this a patch proposal? I don't see any bugs...
------------------------------------------------------------------------
[2002-01-11 06:24:44] a1593@ma.ks.edu.tw
anyway, i hope this is the final post about this issue.
----------------------------------------------
s = strrchr(filenamebuf, '\\');
tmps=filenamebuf;
while (!(*tmps==NULL)) {
if (!(*tmps>0 && *tmps<160)) {//looks like a chinese word
if (!*(tmps+1)==NULL) tmps++;
} else {
if (*tmps=='\\') s=tmps;
}
tmps++;
}
-----------------------------------------------
------------------------------------------------------------------------
[2002-01-09 03:42:34] a1593@ma.ks.edu.tw
-----------code modified----------------------
//s = strrchr(filenamebuf, '\\');
char *tmps;
s=filenamebuf; // set initial value
for (tmps=filenamebuf;*tmps;tmps++) {
if (*tmps<0){// *tmps>127, looks like 2 bytes of chinese code
if (!*(tmps+1)) tmps++;
continue;
}
if (*tmps=='\\') s=tmps;
}
----------code modified end -------------------
------------------------------------------------------------------------
[2002-01-08 09:37:12] a1593@ma.ks.edu.tw
the following code works well for chinese double-byte checking.
-----------code modified----------------------
//s = strrchr(filenamebuf, '\\');
char *tmps;
for (tmps=filenamebuf;*tmps;tmps++) {
if (*tmps<0){// *tmps>127, looks like 2 bytes of chinese code
if (!*(tmps+1)) tmps++;
contonue;
}
if (*tmps=='\\') s=tmps;
}
----------code modified end -------------------
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/14898
--
Edit this bug report at http://bugs.php.net/?id=14898&edit=1