title: PHP Image upload problem
body: <p>I'm having trouble to get the following code to upload large images. It works great with images less than 1000px by 1000px, but breaks on anything bigger. Any help/ideas greatly appreciated. </p>
  
  <p>Note: I have tried increasing the '$memoryNeeded>=10000000' to '7700000000' but still no joy.</p>
  
  <pre><code>if (!$error &amp;&amp; is_uploaded_file($_FILES['galleryFile']['tmp_name'])) {
          $format = strtolower(substr(strrchr($_FILES['galleryFile']['name'],"."),1));            
          $str = strtolower(trim($_FILES['galleryFile']['name']));
          $str = preg_replace('/[^a-z0-9-]/', '-', $str);
          $str = preg_replace('/-+/', "-", $str);    
          $filename=$str.'.'.$format;                
          $uploadGallery=$origFileDir.$filename;
          foreach ($allowedImgFormats as $key =&gt; $value) {
              $value==$format ? $imgFormatOK='1' : NULL;
          }
          $imgFormatOK=='0' ? $error='You are attempting to upload an image with an invalid format!&lt;br /&gt;Please only upload images with ".gif", ".jpg" or ".jpeg" extensions.' : NULL;
          if (!$error &amp;&amp; move_uploaded_file($_FILES['galleryFile']['tmp_name'], $uploadGallery)){ 
              $galleryW='944'; $galleryH='733';                        
              $galleryInfo = getimagesize($uploadGallery);
              $memoryNeeded = Round(($galleryInfo[0] * $galleryInfo[1] * $galleryInfo['bits'] * $galleryInfo['channels'] / 8 + Pow(2, 16)) * 1.65);
              if ($memoryNeeded&gt;=10000000) {
                  unlink($uploadGallery); $error='The chosen image is too large to process.&lt;br /&gt;Please upload a smaller image (lower dimensions and/or resolution).';
              } else {
                  list($wOrig, $hOrig) = getimagesize($uploadGallery);
                  $ratio_orig = $wOrig/$hOrig;
                  if ($wOrig &gt; $galleryW) { $galleryW = $galleryH*$ratio_orig; $galleryH = $galleryW/$ratio_orig; } else { $galleryW=$wOrig; $galleryH=$hOrig; }    
                  if ($galleryH &gt; $galleryH) { $galleryH = $galleryW*$ratio_orig; $galleryW = $galleryH/$ratio_orig; }
                  $galleryP = imagecreatetruecolor($galleryW, $galleryH); 
  
                  switch($format) {
                     case 'gif' : $thisGallery = imagecreatefromgif($uploadGallery); break;
                     case 'jpg' : $thisGallery = imagecreatefromjpeg($uploadGallery); break;
                  }
                  imagecopyresampled($galleryP, $thisGallery, 0, 0, 0, 0, $galleryW, $galleryH, $wOrig, $hOrig);
  
                  switch($format) {
                     case 'gif' : $createGallery=imagegif($galleryP, $galleryFileDir.$filename, 88); break;
                     case 'jpg' : $createGallery=imagejpeg($galleryP, $galleryFileDir.$filename, 88); break;
                  }
                  imagedestroy($galleryP); imagedestroy($thisGallery); unlink($uploadGallery);
  
                  if (!$createGallery) {
                       $error='The chosen image failed to transfer correctly.&lt;br /&gt;Please try again, or attempt to upload an alternative image.';
                       file_exists($galleryFileDir.'/'.$filename) ? unlink($galleryFileDir.'/'.$filename) : NULL;
                  } else {            
                      $_POST['imagename']=$filename; 
                      mysql_query("INSERT INTO isgallery(imagename, assoc_object) VALUES('".$_POST['imagename']."', '".$_POST['id']."')");                         
                  }
              }        
          } else {
              !$error ? $error='The chosen image failed to upload correctly.&lt;br /&gt;Please try again, or attempt to upload an alternative image.' : NULL;
              file_exists($uploadGallery) ? unlink($uploadGallery) : NULL;
          }
      }
  </code></pre>