ขอโค้ดอัพรูปภาพพร้อมเก็บชื่อรูปภาพลงฐานข้อมูลหน่อยครับ ผมทำแล้วไม่ได้ชักที
ผมขอแนะนำคลาสตัวหนึ่งชื่อ class.upload.php ผมใช้อยู่ อันที่จริง php มีคำสั่งจัดการรูปภาพอยู่นะ แต่ผมว่าใช้โค้ดที่คนอื่นเขียนแจกไว้แล้ว คล่องกว่า
ซึ่ง class.upload.php นี้ ความสามารถสูงส่ง ทั้งใช้ง่าย ความสามารถโดยคร่าวๆ นะ
สามารถ ย่อ ขยาย ภาพ
สามารถ เพิ่มลายน้ำเข้าไปในรูปภาพ
สามารถ เพิ่มโลโก้ซ้อนเข้าไปในภาพ
สามารถ คร้อปภาพ
เพิ่มแสง เพิ่มเงา พิมตัวอักษร เข้าไปในรูปภาพ
และอื่นๆ อีกเพียบ ซึ่งเขามี help ให้อ่านในเว็บ
ดาวน์โหลด class.upload.php ที่ http://www.verot.net/php_class_upload_download_zip.htm
Code (SQL)
– —————————-
– TABLE STRUCTURE FOR tbl_image
– —————————-
CREATE TABLE `tbl_image` (
`image_id` tinyint(4) UNSIGNED NOT NULL AUTO_INCREMENT,
`image_name` VARCHAR(50) NOT NULL COMMENT ‘จัดเก็บชื่อรูปภาพ’,
PRIMARY KEY (`image_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
– —————————-
Code (PHP)
<?php
// Include คลาส class.upload.php เข้ามา เพื่อจัดการรูปภาพ
require_once('class/class.upload.php') ;
// ส่วนกำหนดการเชื่อมต่อฐานข้อมูล
$hostname_connection = "localhost";
$database_connection = "db_test";
$username_connection = "root";
$password_connection = "";
$connection = mysql_pconnect($hostname_connection, $username_connection, $password_connection)
or trigger_error(mysql_error(),E_USER_ERROR);
mysql_query( "SET NAMES UTF8" ) ;
// ถ้าหากหน้านี้ถูกเรียก เพราะการ submit form
// ประโยคนี้จะเป็นจริงกรณีเดียวก็ด้วยการ submit form
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
// เริ่มต้นใช้งาน class.upload.php ด้วยการสร้าง instant จากคลาส
$upload_image = new upload($_FILES['image_name']) ; // $_FILES['image_name'] ชื่อของช่องที่ให้เลือกไฟล์เพื่ออัปโหลด
// ถ้าหากมีภาพถูกอัปโหลดมาจริง
if ( $upload_image->uploaded ) {
// ย่อขนาดภาพให้เล็กลงหน่อย โดยยึดขนาดภาพตามความกว้าง ความสูงให้คำณวนอัตโนมัติ
// ถ้าหากไม่ต้องการย่อขนาดภาพ ก็ลบ 3 บรรทัดด้านล่างทิ้งไปได้เลย
$upload_image->image_resize = true ; // อนุญาติให้ย่อภาพได้
$upload_image->image_x = 400 ; // กำหนดความกว้างภาพเท่ากับ 400 pixel
$upload_image->image_ratio_y = true; // ให้คำณวนความสูงอัตโนมัติ
$upload_image->process( "upload_images" ); // เก็บภาพไว้ในโฟลเดอร์ที่ต้องการ *** โฟลเดอร์ต้องมี permission 0777
// ถ้าหากว่าการจัดเก็บรูปภาพไม่มีปัญหา เก็บชื่อภาพไว้ในตัวแปร เพื่อเอาไปเก็บในฐานข้อมูลต่อไป
if ( $upload_image->processed ) {
$image_name = $upload_image->file_dst_name ; // ชื่อไฟล์หลังกระบวนการเก็บ จะอยู่ที่ file_dst_name
$upload_image->clean(); // คืนค่าหน่วยความจำ
// เก็บชื่อภาพลงฐานข้อมูล
$insertSQL = sprintf("INSERT INTO tbl_image (image_name) VALUES ( '%s' )", $image_name );
echo $insertSQL ;
mysql_select_db($database_connection, $connection);
$Result1 = mysql_query($insertSQL, $connection) or die(mysql_error());
}// END if ( $upload_image->processed )
}//END if ( $upload_image->uploaded )
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Upload Image To Database</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
<p>Image_name
<input name="image_name" type="file" id="image_name" size="40" />
</p>
<p>
<input type="submit" value="Upload" />
<input type="hidden" name="MM_insert" value="form1" />
</p>
</form>
</body>
</html>
ประวัติการแก้ไข 2013-02-06 19:56:33 2013-02-06 19:57:41
Date :
2013-02-06 19:55:07
By :
sakchai.chai
ต้องไปกำหนด permission ของโฟเดอร์ที่เก็บรูปให้เป็น 777 ด้วยนะ
Date :
2013-02-06 23:58:28
By :
witmay
คุณ สุดที่รัก รักที่สุด ครับ
มันเปิดไฟล์ไม่ได้เลยครับ ไฟล์เข้ากับ เซิฟเวอร์ไม่ได้ หรือป่าว เกี่ยวมั้ยครับ
http://www.mvfreeonline.com/test/
Date :
2013-02-07 01:20:30
By :
mart7612
สรุปปัญหามันคืออะไรครับ....
1. ปกติเว็บที่ทำ http://www.mvfreeonline.com มันรัยเว็บปกติได้ไหม
2. ลองเอา Code ตัวไหนไปใช้ ไปทำอย่างไร แล้วมัน Error ออกมาแบบนั้น
ลองไล่ข้อมูลมาใหม่หน่อยครับ
Date :
2013-02-07 08:06:48
By :
apisitp
เขียนคำสั้งแบบนี้ผมไหมครับ ไม่รู้ว่าต้องใส่ จุด ไหม
Code (PHP)
$sql_up = "update category set CategoryName='$_POST[txtCategoryName]',CheckStock='$_POST[txtCheck]' where CatID='$_POST[CatID]'";
Date :
2013-02-07 14:08:23
By :
mart7612
เขียนได้เปล่า ก็ต้องลองเอาไปรันดูครับ
ประวัติการแก้ไข 2013-02-08 15:37:18
Date :
2013-02-07 17:18:46
By :
apisitp
Load balance : Server 04