Bug #13405 Updated: Multiple File-Upload Problem

From: Date: Sun, 28 Oct 2001 22:12:43 +0000
Subject: Bug #13405 Updated: Multiple File-Upload Problem
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-69222@lists.php.net to get a copy of this message
ID: 13405
Updated by: sniper
Reported By: leonhard.holz@t-online.de
Old Status: Feedback
Status: Closed
Bug Type: HTTP related
Operating System: 
PHP Version: 4.0.5
New Comment:

This should be fixed in CVS now. You can try the latest 
development build from http://www.php4win.com/ but
make sure it's dated after 27th of October 2001.

Also, there are some minor leaks still in the new code.
If you encounter such leaks, please send the shortest
possible code + html with which you can reproduce the leak
to php-dev@lists.php.net (or me) so we can get rid of these leaks. 

This fix will be in PHP 4.2.0.

--Jani


Previous Comments:
------------------------------------------------------------------------

[2001-10-14 14:23:38] derick@php.net

status: feeedback

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

[2001-10-14 14:15:40] leonhard.holz@t-online.de

IE6 Beta. I just upgraded to final release and will try again soon.

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

[2001-09-23 21:59:13] sniper@php.net

With which browser does this happen?


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

[2001-09-23 10:12:17] leonhard.holz@t-online.de

It's just like Bug #5836, but with the "_name" - Array. If you have a couple of files
to upload and the first is not set, then the array ${file."_name"} has only one key (index
0) with the name of the second (!) file. 
So when you loop through the file-array the wrong name is attached to the uploaded file.

Following function solves the problem:

function correctFileUploadBug($fp_sVarName) {

	GLOBAL ${$fp_sVarName}, ${$fp_sVarName."_name"};
	
	$aFile = &${$fp_sVarName};
	$aFileName = &${$fp_sVarName."_name"};
	
	$aNewFileName = Array();
	$j = 0;
	for ($i=0;$i<count($aFile);$i++) {
		
		if (trim($aFile[$i]) == "" || trim($aFile[$i]) == "none") {
			$aNewFileName[] = "";
			$j++;
		} else {
			$aNewFileName[] = $aFileName[$i-$j];
		}
	}
	unset($aFile);
	unset($aFileName);
	${$fp_sVarName."_name"} = $aNewFileName;
}


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



Edit this bug report at http://bugs.php.net/?id=13405&edit=1



Thread (7 messages)

« previous php.dev (#69222) next »