文件无法上传和移动到文件夹

$image = $_FILES['picture']['name'];
$id=$_SESSION['id'];
//This function separates the extension from the rest of the file name and returns it 
 function findexts ($filename) 
 { 
 $filename = strtolower($filename) ; 
 $exts = split("[/\\.]", $filename) ; 
 $n = count($exts)-1; 
 $exts = $exts[$n]; 
 return $exts; 
 }  

 $ext = findexts ($_FILES['picture']['name']) ; 
 //This assigns the subdirectory you want to save into... make sure it exists!
 $target = "mainimage/";
 //This combines the directory, the random file name, and the extension
 $target = $target . $id.".".$ext; 
 if(move_uploaded_file($_FILES['picture']['tmp_name'], $target)) 
 {
 echo ("This is your new profile picture!");
 } 
 else
 {
 echo "Sorry, there was a problem uploading your file.";
 }

for some reason the "else" keeps showing up (there was a problem uploading the file). I put comments in everything that I am trying to do. please help! thanks!

To close the question as per OP's request.

The issue is that you need to increase the maximum size for uploads. PHP's default is usually 2M and you are most probably trying to upload a file larger than what the maximum setting is set to.

This can be achieved in two ways.

By editing your php.ini file with the following settings:

; Maximum allowed size for uploaded files.
upload_max_filesize = 40M

; Must be greater than or equal to upload_max_filesize
post_max_size = 40M

or via an .htaccess file placed in the root of your server:

php_value upload_max_filesize 20M
php_value post_max_size 30M