Welcome Guest ( Log In | Register)



 
Reply to this topicStart new topic
> My Code Doesnt Resize Large Images, Please Help.
apple
post May 18 2007, 08:48 AM
Post #1


Newbie [Level 2]
**

Group: Members
Posts: 31
Joined: 9-August 06
Member No.: 28,049



Can someone please have a look at the following code, this uploads an image, and make it in 2 sizes, one size is max. 600 x 800, uploads to images folder and second 120 x 120 and uploads to thumbs folder.
this script works fine, with normal size images, but if i try to upload large pics( for example, an image with dimension 2432 x 3300, it shows blank page, and uploads the original image without sizing to "image" folder, and doesnt make any small thumbnail... I hope u understand..
Please someone help me, i shall be so thankful.

CODE

<?PHP
session_start();
header("Cache-control: private");

function Resize_Image($save,$file,$t_w,$t_h,$s_path,$o_path) {
$s_path = trim($s_path);
$o_path = trim($o_path);
$save = $s_path . $save;
$file = $o_path . $file;
$ext = strtolower(end(explode('.',$save)));
list($width, $height) = getimagesize($file);

if(($width>$t_w) OR ($height>$t_h)) {
$r1 = $t_w/$width;
$r2 = $t_h/$height;

if($r1<$r2) {
$size = $t_w/$width;

}else{
$size = $t_h/$height;


}
}else{
$size=1;
}
$modwidth = $width * $size;
$modheight = $height * $size;


$tn = imagecreatetruecolor($modwidth, $modheight);

switch ($ext) {
case 'jpg':
case 'jpeg':
$image = @imagecreatefromjpeg($file) or die ("Seems to be problem");
break;
case 'gif':
$image = imagecreatefromgif($file);
break;
case 'png':
$image = imagecreatefrompng($file);
break;
}
imagecopyresampled($tn, $image, 0, 0, 0, 0, $modwidth, $modheight, $width, $height) or die("he");
imagejpeg($tn, $save, 100) or die ("heheh");;
return;
}

function write_beg($filename, $data){
$handle = fopen ($filename, "r");
$old_content = fread ($handle, filesize ($filename));
fclose ($handle);
$final_content = $data.$old_content;
$handle2 = fopen ($filename, "w");
$finalwrite = fwrite ($handle2, $final_content);
fclose ($handle2);
}


# check to see if form submitted
# if yes, process form variables

# if no, display form

if($_POST["action"]== "Upload Image"){

# define the constant variables

$uploadDir = 'images/'; // main picture folder
$max_height = 600; // largest height you allowed; 0 means any
$max_width = 800; // largest width you allowed; 0 means any
$max_file = 2000000; // set the max file size in bytes
$image_overwrite = 1; // 0 means overwite; 1 means new name
$allowed_type01 = array(
"image/gif",
"image/pjpeg",
"image/jpeg",
"image/png",
"image/x-png",
"image/jpg"); // add or delete allowed image types
$do_thumb = 1; // 1 make thumbnails; 0 means do NOT make
$thumbDir = "thumbs/"; // thumbnail folder
$thumb_prefix = ""; // prefix for thumbnails
$thumb_width = 120; // max thumb width
$thumb_height = 120; // max thumb height
$flat_file = 1; // 1 flat file for data; 0 database
$what_error = array();

# get basic info about uploaded file
$original_name = $_FILES['imagename']['name'];
$original_tmp = $_FILES['imagename']['tmp_name'];
$original_size = $_FILES['imagename']['size'];
$original_type = $_FILES['imagename']['type'];

# do some basic error trapping and cleanup
if($original_size>$max_file) {
//too large, go back to form
array_push($what_error, "File Size Exceeds Limit");
}

if( $original_size<1) {
//no file was uploaded
array_push($what_error, "Please Select A File To Upload");
}

if(!in_array($original_type, $allowed_type01)) {
// wrong file type
array_push($what_error, "File Type Is Not Allowed");
}

if(count($what_error)>0) {
// send to error page
$_SESSION["resultset"] = $what_error;
echo $what_error;
//echo '<meta http-equiv="refresh" content="0;URL=mpg_error.php"> ';
exit();
}

# check to see if file already exists in the folder
# if it exists AND rename option is , create new name
$does_it = FALSE;
$original_name = strtolower($original_name);
if(file_exists($uploadDir . $original_name)) {
if($image_overwrite == 1) {
//rename
while(!$does_it) {
$add_this_name = rand(1,200);
$original_name = $add_this_name . $original_name;
if(!file_exists($uploadDir . $original_name)) {
$does_it = TRUE;
}
}
}
}

# attempt to MOVE the image to its proper location

$uploadFile = $uploadDir . $original_name;
if (move_uploaded_file($_FILES['imagename']['tmp_name'], $uploadFile) ) {
// continue
} else {
// send to error page
array_push($what_error, "error - unknown cause");
$_SESSION["resultset"] = $what_error;
echo "error - unknown cause";
//echo '<meta http-equiv="refresh" content="0;URL=mpg_error.php"> ';
exit();
}

# check to see if image needs resizing and act accordingly

list($original_width, $original_height) = getimagesize($uploadDir . $original_name);
//echo $original_height;

if($max_height<$original_height OR $max_width<$original_width) {
// dimensions are too large - resize
Resize_Image($original_name,$original_name,$max_width,$max_height,$uploadDir,$uploadDir);
echo "image resized done<br>";
}



# check to see if make thumbnails is true
# if yes make and store thumb
$thumb_name = $thumb_prefix . $original_name;

if($do_thumb == 1) {
// make a thumb
Resize_Image($thumb_name,$original_name,$thumb_width,$thumb_height,$thumbDir,$uploadDir);
echo "thumb too";
}


}else{
?>
<html>
<head>
<title>My Photo Gallery Upload Form</title>
<link rel="stylesheet" type="text/css" href="shared_files/textsize.css">

</head>
<body bgcolor="#ffffff" text="#0000a6" link="#0000a6" vlink="#0000a6" alink="#0000a6">

<div style="position: absolute; top: 50px; left: 300px; width:90%; font-size:10pt; padding:10px;filter:shadow(color:gray);"><div style="HEIGHT:250px; border : solid 2px #0000a0; padding : 4px; WIDTH:380px; OVERFLOW:auto; background-color:#fcfcfc; layer-background-color:#fcfcfc; visibility: visible; ">
<form action="<?php echo $PHP_SELF ?>" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
Browse a File to Upload: <br>
<input type="file" name="imagename"><br>
Enter a title for the picture<br>
<input type="text" name="imagetitle" size="40" maxlength="80" value=""><br>
Enter your name<br>
<input type="text" name="artistname" size="40" maxlength="80" value=""><br>
Enter a description for the picture<br>
<input type="text" name="imagedescript" size="40" maxlength="250" value=""><br>
<input type="submit" value="Upload Image" name="action"><br><br>
note: <font color="#ff0080">max file size is: 2megs</font>
</div></div>
</body>
</html>
<?PHP
}

?>

Notice from truefusion:
Placed code into codebox.


This post has been edited by truefusion: May 18 2007, 09:46 AM
Go to the top of the page
 
+Quote Post
jlhaslip
post May 19 2007, 12:39 AM
Post #2


A computer once beat me at chess, but it was no match for me at kick boxing.
Group Icon

Group: [MODERATOR]
Posts: 4,076
Joined: 24-July 05
From: Linix, DOS and Windows…the good, the bad and the ugly
Member No.: 9,787
Spam Patrol



Just wondering if the file size for those really LARGE images exceeds the max file size for uploads?

How many megs are they and what are the server limits for max file size?
Go to the top of the page
 
+Quote Post
ghostrider
post May 19 2007, 01:12 AM
Post #3


Super Member
*********

Group: Members
Posts: 397
Joined: 9-June 06
From: Wisconsin
Member No.: 24,924



The fact that only large files don't work makes me think that the script is not working due to a lack of memory. I believe Trap17 allocates 4 megabytes of RAM for each account to use, and no more. I'm not familiar with the internal workings of the image functions of PHP, but it could be very likely its converting the file to a different (and probably larger) format, so that it can be manipulated by all the imaging functions of PHP with ease.

My advice: Get a server with PHP running on your own computer, and try it there. If it works, its a memory problem. If it doesn't, post back smile.gif.

Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic

Collapse

> Similar Topics

Topics Topics
  1. How do you test your php code(80)
  2. Php Clock(7)
  3. Change Permission With Php Code(3)
  4. Can You Add Images Into A Mysql Database?(20)
  5. Adapting Html Code Embed To Work On Phpnuke(7)
  6. Dynamic Image / Signature Generator(12)
  7. Wap Source Code Viewer(4)
  8. More Dynamic ?id=browsing With Php (associative Array)(1)
  9. Display The Current Date/time(3)
  10. Use Bb Code On Your Site!(7)
  11. Some Basic Php Code Snippets For All Levels Of Experience(3)
  12. Php Education Class (first Code)(0)
  13. How To Make A Random 7 Number Code?(2)
  14. Whats Wrong>?(9)
  15. Awesome Source Code Viewer Script(7)
  1. Html Code Tester. Online Script(15)
  2. I Need Some Proof Reading For My Code Please! [resolved](7)
  3. Will This Code Work(5)
  4. Use Rss In Php Code(3)
  5. Php Code(15)
  6. How To Display Images Of A Directory(4)
  7. Php Code Needed(5)
  8. Php Code?(12)
  9. Php Code Needed Iii(10)
  10. Php And Mysql Programming(2)
  11. Malicious Code Injection(3)
  12. Php Source Code Unveiled In Browser?(7)
  13. Create Table - Mysql Code - Help(1)


 



- Lo-Fi Version Time is now: 6th October 2008 - 10:40 PM