PHP upload รูปภาพ
PHP upload รูปภาพ
php Upload รูปภาพ |
วันนี้ โปรแกรมเมอร์กากๆ จะมานำเสนอเกี่ยวกับ php upload รูปภาพ เราลองมาดู code กันเลยนะครับ (อย่างที่บอกนะครับ dreamweaver ในการเขียน code อาจจะยุ่งๆหน่อย มาดูกันเลยนะครับ
Code PHP upload รูปภาพ
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
<input type="file" name="file" />
<input type="submit" name="Submit" value="อัปรูป" />
<input name="hidAction" id="hidAction" type="hidden" value="Add">
</form>
</body>
</html>
<?php
if($hidAction == "Add") { //เช็คค่า hidAction ที่ส่งมาถ้าเท่ากับ Add ให้โปรแกรทำงานต่อ
$date = date("U"); // สร้าเลข 10 หลักมาจากเวลาเพื่อนำไปเป็นชื่อรูปภาพ
if($file != "") {
$type = getimagesize($file); // หาประเภทของรูปภาพ
if($type[2] == 1) {
$image = $date."_img.gif"; // เมื่อรูปเป็น .gif
} else if($type[2] == 2) {
$image = $date."_img.jpg"; // เมื่อรูปเป็น .jpg
}
else {
$image = $date."_img.bmp"; // เมื่อรูปเป็น .bmp
}
copy($file, "images/$image"); // copy รูปไว้ในโฟลเดอร์ image
chmod("images/$image", 0777); // ทำการ changmode
}
$host="localhost"; //ส่วนในการติดต่อฐานข้อมูล
$db_username="root";
$db_password="root";
$dbname="test";
$connect = mysql_connect($host,$db_username,$db_password);
if(!$connect){
echo "ไม่สามารถติดต่อฐานข้อมูลได้"; exit();
}
$sql = "insert into image (id, image) values ('', '$image') "; //เพิ่มข้อมูลลงดาต้าเบส โดยเก็บชื่อรูปไว้
$dbquery = mysql_db_query($dbname, $sql);
}
?>
จาก Code ข้างบนนะครับ จะเห็นได้ว่าเรามีการเก็บรูปไว้ 2 ที่ คือ 1 เก็บไว้ใน โฟลเดอร์ images ในโฟลเดอร์ที่สร้างไว้ ซึ่งอยู่ในส่วน copy($file, "images/$image"); chmod("images/$image", 0777); ซึ่งเราจะต้องไปสร้างโฟลเดอร์ images ก่อนนะครับไม่งั้นมันจะ Error ซึงในที่นี้ผมได้สร้างไว้ที่ C:\AppServ\www\test\images ซึ่งอยู่ใน โฟล์เดอร์เดียวกันกับไฟล์ upload.php และส่วนที่ 2 จะเป็นการเก็บไว้ที่ Database ซึ่งมีชื่อว่า test ในตารางที่ชื่อว่า image ซึ่งในที่นี้ถ้าใครยังไม่มี Database ให้ไปสร้างได้ดังนี้
Code SQL สร้างฐานข้อมูล (สงสัย คลิก )
CREATE TABLE `image` (
`id` int(11) NOT NULL auto_increment,
`image` tinytext NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;
ผมใช้คำสั่งให้มันสร้างโฟลเดอร์ก่อนแล้วให้มันเก็บรูปลงโฟลเดอร์ครับแต่มัน
ตอบลบwarning: copy) [function.copy]: failed to open stream: no such file or directory in
Warning: Chmod() [function.chmod]มีวิธีแก้ไหมครับ
มันบอกว่าไม่เจอโฟลเดอร์ที่สร้างไว้อะครับ
ตอบลบ- ลองดูที่คำสั่งสร้างโฟลเดอร์นะครับ
- ดู Path ที่เก็บไฟล์ไว้ กับ ไฟล์ที่จะเก็บตรงกันหรือป่าวนะครับ ลองดูครับ *-*
แล้วจะปรับขนาดของรูปที่โชว์ออกมายังไงครับ
ตอบลบอันนี้ ปรับตอนอัฟโหลดนะครับลองเข้าไปดู
ลบhttp://blog.phaisarn.com/node/506
ส่วนปรับขนาดตอนโชว์ก็ตามนี้ครับ
http://www.hellomyweb.com/content/html_content/tryit.php?lesson=image_size
เก็บข้อมูลได้แล้ว copy ในโฟลเดอร์ได้แล้ว แต่ไม่แสดงภาพค่ะ เป็นเพียง ไอคอน รูปภาพ แก้ยังไงดีค่ะ
ตอบลบลอง เช็คดูที่ พาท อะครับ ว่าเรียกภาพมาแสดงถูกหรือป่าว ลองเช็คดูครับ
ลบความคิดเห็นนี้ถูกผู้เขียนลบ
ตอบลบผู้เขียนยังตอบอยู่หรือป่าวครับ
ตอบลบคือผมได้นำ Code นี้ ไปใช้งานในดรีม และเชื่อมต่อกับโปรแกรมจำลองฐานข้อมูลแล้ว สามารถเก็บได้เรียบร้อย
แต่ ทำไมเวลา ผม นำไปขึ้น Host จริง แล้ว มันไม่สามารถใช้งานได้อะครับ รบกวนตอบด้วยนะครับ ขอบคุนครับ
ไม่ทราบว่าเกิด error แจ้งเตือนแบบไหน ครับ จะได้ตอบถูก
ลบแล้วถ้าต้องการเปลี่ยนเป็นอัฟเดทรูปภาพทับรูปเดิม ในโฟลเดอละครับ ต้องทำยังไง
ตอบลบใช้การ update ครับ ลองตัวอย่างนี้
ลบhttp://www.thaicreate.com/community/php-upload-file-mysql-edit-form.html
แล้ว ถ้า ไฟล์upload.php ไม่ได้อยู่กับโฟล์เดอร์ image หล่ะครับ ต้องเพิ่มอะไรไหมครับ
ตอบลบไฟล์ upload.php เป็นไฟล์โค้ดคำสังในการ upload ครับ ส่วน โฟล์เดอร์ image เป็นโฟล์เดอร์ที่ใช้เก็บรุปภาพที่อัฟโหลด ไม่เกี่ยวกันครับ
ลบความคิดเห็นนี้ถูกผู้เขียนลบ
ตอบลบเวลาแสดงผลทำยังไงคะ
ตอบลบเออเร่อแบบนี้ต้องแก้ไขยังไงครับ
ตอบลบNotice: Undefined variable: conn in C:\xampp\htdocs\ProjectSell\testupload.php on line 39
Warning: mysqli_set_charset() expects parameter 1 to be mysqli, null given in C:\xampp\htdocs\ProjectSell\testupload.php on line 39
Notice: Undefined variable: image in C:\xampp\htdocs\ProjectSell\testupload.php on line 44
Fatal error: Uncaught Error: Call to undefined function mysql_db_query() in C:\xampp\htdocs\ProjectSell\testupload.php:45 Stack trace: #0 {main} thrown in C:\xampp\htdocs\ProjectSell\testupload.php on line 45
ลองดูคลิปนี้ครับ
ลบhttps://www.youtube.com/watch?v=OXf0eImPTl0
มีวิธีอัพโหลดรูปเหมือน"เฟสบุ๊ค" มั้ยครับ แบบว่า copy แล้ว past เลย
ตอบลบ