php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #8940 File uploads stopped withing in 4.0.4pl1
Submitted: 2001-01-26 11:21 UTC Modified: 2001-02-20 06:13 UTC
From: glen at broadpool dot com Assigned:
Status: Closed Package: Unknown/Other Function
PHP Version: 4.0.4pl1 OS: Linux
Private report: No CVE-ID: None
 [2001-01-26 11:21 UTC] glen at broadpool dot com
I've been using 4.0.3 for a couple of weeks now. Last night I ran the 
Redhat Update agent and installed 4.0.4pl1. Everything works fine 
except for file uploads. The upload is recorded as successful, 
everything SEEMS to work fine, but there is no file in /tmp, and the 
variable $HTTP_POST_FILES['userfile']['type'] is undefined. Apache 
1.3.14 reports no problems, and returns a 200 return code. I've 
tried working with php.ini; I can turn file uploads off, and that 
works, then when I turn it back on again, it has the same problem. 
I'm pretty sure it's something in 4.0.4pl1 because nothing else on 
my system has changed since the upgrade last night. Here's some of 
my code:

			$file_type = $HTTP_POST_FILES['userfile']['type'];
			if (substr($file_type,-4,4) != 'jpeg') {
				die( "Files of type '" . $file_type .
				     "' are not recognized.<br>" .
					 "Only JPEG images are currently supported." );
			}
			
			$path_for_file = 'gallery/' . $user_id . '/' . $photo_id . '.jpg';
			if 
(!is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name']))
				die( "File is not uploaded." );	
			move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], 
$path_for_file);

...but I really don't think the problem is in the code. Here's some 
output from my Apache log file:

192.168.1.2 - - [26/Jan/2001:08:13:04 -0800] "POST /upload.php 
HTTP/1.1" 200 51
"http://<mysite>/upload.php" "Mozilla/4.0 (compatible; MSIE 5.0; 
Mac_PowerPC)
"

No errors are reported any where.


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-01-26 12:01 UTC] glen at broadpool dot com
Ok, I've done some further testing. With a simple script that does 
nothing except upload the file and move it, it works: the file is 
there. However, the "type" variable has no value! No matter what 
type of file I upload, the $HTTP_POST_FILES['userfile']['type'] value 
is an empty string.
 [2001-01-26 12:50 UTC] glen at broadpool dot com
Further testing reveals that the upload is working properly, but the 
file 'type' variable is not set, and PHP is not treating it as an image 
file. Image processing utilities state that the file is corrupt after 
uploading, even though it remains the exact same size as the 
original. I suspect that PHP is doing something to the file.
 [2001-01-26 16:07 UTC] glen at broadpool dot com
If you view the uploaded file (using "od" in my case), you'll see that 
the first few bytes of it are:

"Content-Type: image/jpeg" followed by the binary data that makes 
up the JPEG file. Since the uploaded file is exactly the same size as 
the original, I presume that the last few bytes are dropped out.
 [2001-02-04 12:41 UTC] sniper@php.net
I can not reproduce this with latest CVS. 
Please try the latest CVS snapshot from http://snaps.php.net/

--Jani


 [2001-02-19 17:28 UTC] lyric@php.net
Duplicate of http://bugs.php.net/bugs.php?id=9298 which is fixed in CVS.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Tue Apr 16 17:01:30 2024 UTC