คือผมทำการ resize รูปแล้วถ้ารูปมีขนาดใหญ่ๆมานจะไม่ยอม resize อ่ะคับมีวิธีการแก้ปัญหาอย่างไรบ้าง
คือผมทำการ resize รูปแล้วถ้ารูปมีขนาดใหญ่ๆมานจะไม่ยอม resize อ่ะคับมีวิธีการแก้ปัญหาอย่างไรบ้าง
Code (PHP)
<?php
if(trim($_FILES["fileUpload"]["tmp_name"]) != "")
{
$date = date("U");
$images = $_FILES["fileUpload"]["tmp_name"];
$size=getimagesize($images);
if($size[2] == 2) {// file jpg
//$new_images = "Thumbnails_".$_FILES["fileUpload"]["name"];
$new_images = $date."_img.jpg";;
copy($_FILES["fileUpload"]["tmp_name"],"MyResize/".$_FILES["fileUpload"]["name"]);
print $size[1]."<br>";
print $size[0]."<br>";
$width=400; //*** Fix Width & Heigh (Autu caculate) ***//
$height=400;
//round($width*$size[1]/$size[0]);
$images_orig = imagecreatefromjpeg($images);
$photoX = imagesx($images_orig);
$photoY = imagesy($images_orig);
$images_fin = imagecreatetruecolor($width, $height);
//imagecopyresampled
imagecopyresized($images_fin, $images_orig, 0, 0, 0, 0, $width+1, $height+1, $photoX, $photoY);
imagejpeg($images_fin,"MyResize/".$new_images);
imagedestroy($images_orig);
imagedestroy($images_fin);
}//end if
}
?>
เวลารูปมีขนาดใหญ่จะขึ้นแบบนี้
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 6400 bytes) in C:\AppServ\www\litteturtle\phpUploadResize.php on line 21Tag : - - - -
Date :
2009-07-14 11:04:52
By :
littleturtle
View :
1668
Reply :
12
รูปมันใหญ่ไปคับ
ต้องกำหนดขนาดใหม่ หรือมั้ยก็ กันอย่าให้อัปอยู่ใหญ่เกินไป เช่น
$max_photo = 300000;
รูปนี้ไม่เกิน 300k
$images _size = $_FILES['fileUpload']['size'];
$images = $_FILES["fileUpload"]["tmp_name"];
เพิ่มบรรทัดนี้เข้าไปครับแล้วก็เช็ค
if($images_size>$max_photo)
{
echo "รูปใหญ่ไปนะคุณ อัปยังไง เกือบ 10mb";
exit();
}
อิอิ แค่นี้นะครับ เป็นแนวทางนะครับ ถ้าจะอัปจริงๆ รูป 10 mb ก็ต้องไปแก้ใน php.ini ครับ
Date :
2009-07-14 11:32:27
By :
teez1232002
ถ้าอยากเก็บรูปให้มานเก็บข้อมูลได้เยอะขึ้นต้องไปรับตรงไหนของ php.iniครับ
Date :
2009-07-14 11:46:20
By :
littleturtle
การเก็บภาพ หรือข้อมูลไม่ได้อยู่ที่ php.ini ครับมันอยู่ที่ Host ว่าเรามี เนื้อที่เยอะขนาดไหน
ถ้าเยอะก็จะเก็บได้มาครับ แต่ตอนอัปโหลดถ้าให้มันเยอะๆ ลองใส่บรรทัดนี้เข้าไปดูครับ
ใส่ใน config ของเราก็ได้ ได้ไม่ได้ยังไงบอกหน่อยนะครับคนอื่นได้เอาไปใช้
ผมไม่เคยทำเหมือนกัน
ini_set("memory_limit", "ขนาดที่ต้องการให้อัป เช่น 1000M");
Date :
2009-07-14 12:21:21
By :
teez1232002
ผมยังทำอยู่บน localhost อยู่อ่ะคับ
Date :
2009-07-14 13:04:48
By :
littleturtle
memory limit ผมตั้งไว้ที่ 8 mแต่ไฟล์ที่ผมอัปแค่ 200kb เองทำไมมานฟ้องว่าไม่ให้ resize รูปอ่ะคับ
Date :
2009-07-14 13:08:16
By :
littleturtle
error ว่ากะไรละครับ
Date :
2009-07-14 13:16:51
By :
plakrim
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 6400 bytes) in C:\AppServ\www\litteturtle\phpUploadResize.php on line 21
Date :
2009-07-14 13:20:48
By :
littleturtle
ผมว่ามันติดลูปอะไรสักอย่างแหละครับ mem ถึงหมด เช็คดีๆ นี่เป็นโค๊ดทั้งหมดแล้วหรอ
Date :
2009-07-14 13:31:33
By :
plakrim
<html>
<head>
<title>ThaiCreate.Com PHP Upload Resize</title>
</head>
<body>
<?
//if($_FILES["fileUpload"]["size"]<300000){
if(trim($_FILES["fileUpload"]["tmp_name"]) != "")
{
$date = date("U");
$images = $_FILES["fileUpload"]["tmp_name"];
$size=getimagesize($images);
if($size[2] == 1) {// file jpg
//$new_images = "Thumbnails_".$_FILES["fileUpload"]["name"];
$new_images = $date."_img.gif";;
copy($_FILES["fileUpload"]["tmp_name"],"MyResize/".$_FILES["fileUpload"]["name"]);
$width=400; //*** Fix Width & Heigh (Autu caculate) ***//
$height=round($width*$size[1]/$size[0]);
$images_orig = imagecreatefromgif($images);
$photoX = imagesx($images_orig);
$photoY = imagesy($images_orig);
$images_fin = imagecreatetruecolor($width, $height);
//imagecopyresampled
imagecopyresized($images_fin, $images_orig, 0, 0, 0, 0, $width+1, $height+1, $photoX, $photoY);
imagegif($images_fin,"MyResize/".$new_images);
imagedestroy($images_orig);
imagedestroy($images_fin);
}//end if
elseif($size[2] == 2) {// file jpg
//$new_images = "Thumbnails_".$_FILES["fileUpload"]["name"];
$new_images = $date."_img.jpg";;
copy($_FILES["fileUpload"]["tmp_name"],"MyResize/".$_FILES["fileUpload"]["name"]);
$width=400; // Fix Width & Heigh (Autu caculate)
$height=round($width*$size[1]/$size[0]);
$images_orig = imagecreatefromjpeg($images);
$photoX = imagesx($images_orig);
$photoY = imagesy($images_orig);
$images_fin = imagecreatetruecolor($width, $height);
imagecopyresized($images_fin, $images_orig, 0, 0, 0, 0, $width+1, $height+1, $photoX, $photoY);
imagejpeg($images_fin,"MyResize/".$new_images);
imagedestroy($images_orig);
imagedestroy($images_fin);
}//end if
}
//}//end if fix size
else{
print "ขนาดข้อมูลใหญ่เกิินไป";
}
?>
<b>Original Size</b><br>
<img src="<?="MyResize/".$_FILES["fileUpload"]["name"];?>">
<hr>
<b>New Resize</b><br>
<img src="<?="MyResize/".$new_images;?>">
</body>
</html>
Date :
2009-07-14 13:35:26
By :
littleturtle
ไม่ได้ซะทีอ่ะครับ ปรติเว็บค้าอัพโหลดรูปกันยังไงคับ ใช้วิธี resize หรือ จำกัดขนาดของรูปที่จะอัพ คือผมอัพรูปปกติได้นะคับ แต่พอ resize รูปใหญ่ๆมานก็ error ทุกทีเลย
Date :
2009-07-14 13:51:10
By :
littleturtle
ได้แล้วครับต้องไปปรับค่าใน php.ini อ่ะคับ
Date :
2009-07-14 14:24:37
By :
littleturtle
ว่าจะบอกว่ารันได้นะครับไม่มีปัญหา อะไร
มีรูปยืนยัน
Date :
2009-07-14 14:39:22
By :
teez1232002
Load balance : Server 00