|
|
|
resize รูปภาพครับ จะ error แบบนี้อะครับ Fatal error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 10944 bytes) in ถ้าอัพรูปภาพขนาดเล็กไม่มีปัญหาครับ |
|
|
|
|
|
|
|
Code (PHP)
<?
$p_id = $_REQUEST['pr_id'];
$p_name = $_REQUEST['pr_name'];
$p_detail = $_REQUEST['pr_detail'];
$p_action = $_REQUEST['hd_action'];
$pr_picture = $_FILES['pr_picture']['tmp_name'];
$pr_picture_name = $_FILES['pr_picture']['name'];
$pr_picture_size = $_FILES['pr_picture']['size'];
$pr_picture_type = $_FILES['pr_picture']['type'];
$pr_doer = $_SESSION['login_name'];
$sql_str = "insert into " .
"tbPr(pr_id, pr_name, pr_detail, pr_doer, update_date) " .
"values('" . $p_id . "','" . $p_name . "','" . $p_detail . "','" . $pr_doer . "', sysdate())";
// echo $sql_str;
$user = "root";
$password = "root";
$db_connect = mysql_connect("localhost",$user,$password) or die("ไม่สามารถเชื่อมต่อฐานข้อมูลได้");
mysql_query("SET NAMES UTF8", $db_connect);
mysql_select_db("myprdB",$db_connect) or die("ติดต่อฐานข้อมูลไม่ได้");
mysql_query($sql_str,$db_connect) or die("เอ็กซิคิวต์คำสั่ง SQL ไม่ได้");
//คำสั่งตรวจสอบนามสกุลของรูปภาพ
$dbname = "myprdb";
$ext = strtolower(end(explode('.' , $pr_picture_name)));
if ($ext == "jpg" or $ext == "jpeg" or $ext == "png" or $ext == "gif") {
$sql = "select max(pr_id) from tbpr";
$result = mysql_db_query($dbname,$sql);
$r = mysql_fetch_array($result);
$id_max=$r[0];
$filename=$id_max . "." . $ext;
copy($pr_picture,"PrPhoto/$filename");
//คำสั่ง resize รูปภาพ
if ($ext =="jpg" or $ext == "jpeg") {
$ori_img = imagecreatefromjpeg($pr_picture);
} else if ($ext =="png") {
$ori_img = imagecreatefrompng($pr_picture);
} else if ($ext =="gif") {
$ori_img = imagecreatefromgif($pr_picture);
}
$ori_size = getimagesize($pr_picture);
$ori_w = $ori_size[0];
$ori_h = $ori_size[1];
if ($ori_w>=$ori_h) {
$new_w = 500;
$new_h = round(($new_w/$ori_w)*$ori_h);
} else {
$new_h = 500;
$new_w = round(($new_h/$ori_h)*$ori_w);
}
$new_img = imagecreatetruecolor($new_w, $new_h);
imagecopyresized($new_img, $ori_img, 0, 0, 0, 0, $new_w, $new_h, $ori_w, $ori_h);
if ($ext =="jpg" or $ext =="jpeg") {
imagejpeg($new_img, "PrPhoto/$filename");
} else if ($ext =="png") {
imagepng($new_img, "PrPhoto/$filename");
} else if ($ext =="gif") {
imagegif($new_img, "PrPhoto/$filename");
}
imagedestroy($ori_img);
imagedestroy($new_img);
$sql = "update tbpr set picture = '$filename' where pr_id = '$id_max' ";
mysql_db_query($dbname,$sql);
}
mysql_close($db_connect);
header("Location: index.php?viewpage=showroom");
?>
Tag : PHP, MySQL
|
|
|
|
|
|
Date :
2011-12-24 13:34:36 |
By :
DonutJung |
View :
954 |
Reply :
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไปปรับ memory limit ใน php.ini ครับ
|
|
|
|
|
Date :
2011-12-24 14:00:55 |
By :
ikikkok |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอสอบถามอีกนิดครับพี่ เข้าไปตรงไหนหรอครับ ขอบคุณมากครับ
|
|
|
|
|
Date :
2011-12-24 15:47:37 |
By :
DonutJung |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไป search หาไฟล์ php.ini ได้เลยครับ
ถ้าใช้ AppServ ก็ไปที่ Start => All Programs => AppServ => Configuration Server => PHP Edit the php.ini Configuration File
พอเปิดไฟล์แล้ว ค้นหา memory_limit แก้เลขเป็น 32 ก็ได้ครับ แล้ว restart Apache ถ้าทำไม่เป็นก็ restart เครื่องไปเลยครับ
|
|
|
|
|
Date :
2011-12-24 16:41:36 |
By :
kerb |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ini_set(“memory_limit”,”16M”);
|
|
|
|
|
Date :
2011-12-24 16:47:52 |
By :
pjgunner.com |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณนะครับพี่ ผมลองทั้งสองวิธีเลยครับ ยังไม่ได้เหมือนเดิมครับพี่ ลองเปลี่ยน 32 และ 64 ก็ยังไม่ได้เช่นเดิมครับ ช่วยหน่อยนะครับ ขอบคุณมากเลยครับ
|
|
|
|
|
Date :
2011-12-24 19:20:55 |
By :
DonutJung |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
restart apache รึยังครับ ถ้าแก้แล้วไม่ restart ก็ไม่มีผลนะครับ
หรือไม่ก็ลองคำสั่งนี้ยังครับ ไว้บนสุดของไฟล์
Code (PHP)
ini_set(“memory_limit”,”64M”);
|
|
|
|
|
Date :
2011-12-24 21:47:11 |
By :
kerb |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองทั้งสองอย่างแล้วครับ ทั้งรีสตาร์ท Apache แล้วก็เครื่องอะครับ แล้วคำสั่ง ini_set ก็ลองแล้วครับพี่ก็ยังขึ้นอยู่ดี งงๆ เหมือนกันครับ ไม่หาย ยังไงใครรู้ช่วยหน่อยนะครับ สงสารเด็กตาดำๆ T_T
|
|
|
|
|
Date :
2011-12-25 17:25:45 |
By :
DonutJung |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มีใครรู้บ้างอะครับ รบกวนหน่อยอะครับ ติดตรงนี้นิดเดียวเอง T_T
|
|
|
|
|
Date :
2011-12-25 21:54:57 |
By :
DonutJung |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองเอานี่ไปอ่านดูนะครับ ละลองแก้ไข
http://qdig.sourceforge.net/Support/AllowedMemorySize
หรือไม่ ก็ ลอง
Code (PHP)
ini_set('memory_limit', '-1');
ดูครับผิดพลาดยังไงขออภัย
|
ประวัติการแก้ไข 2011-12-25 22:10:30
|
|
|
|
Date :
2011-12-25 22:07:21 |
By :
yamcrocodile |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากเลยครับ เดี๋ยวลองทำดูครับ ได้ยังไงเดี๋ยวมาบอกอีกทีครับ
|
|
|
|
|
Date :
2011-12-26 09:56:57 |
By :
DonutJung |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|