PHP Image upload problem

PATLive

New Member
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. Note: I have tried increasing the '$memoryNeeded>=10000000' to '7700000000' but still no joy.\[code\]if (!$error && 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 => $value) { $value=http://stackoverflow.com/questions/3678561/=$format ? $imgFormatOK='1' : NULL; } $imgFormatOK=='0' ? $error='You are attempting to upload an image with an invalid format!<br />Please only upload images with ".gif", ".jpg" or ".jpeg" extensions.' : NULL; if (!$error && 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>=10000000) { unlink($uploadGallery); $error='The chosen image is too large to process.<br />Please upload a smaller image (lower dimensions and/or resolution).'; } else { list($wOrig, $hOrig) = getimagesize($uploadGallery); $ratio_orig = $wOrig/$hOrig; if ($wOrig > $galleryW) { $galleryW = $galleryH*$ratio_orig; $galleryH = $galleryW/$ratio_orig; } else { $galleryW=$wOrig; $galleryH=$hOrig; } if ($galleryH > $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.<br />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.<br />Please try again, or attempt to upload an alternative image.' : NULL; file_exists($uploadGallery) ? unlink($uploadGallery) : NULL; } }\[/code\]
 
Back
Top