วิชาอาจารย์ตาล สำหรับคนขี้เกลียดพิมพ์

Go down

วิชาอาจารย์ตาล สำหรับคนขี้เกลียดพิมพ์

ตั้งหัวข้อ  Pz- on Thu Feb 03, 2011 1:42 pm


การอัพโหลดรูปภาพเพื่อเก็บ path หรือ ชื่อของรูปภาพที่อัพโหลดไว้ใน database นั่นเองนะครับ โดยวิธีการนี้เราสามารถนำไปประยุกต์เพื่อใช้งานต่างๆ ได้ตามความต้องการของผู้ใช้ได้เลยนะครับ ผมจะทำให้เห็นถึงวิธีการอัพโหลดรูปภาพว่าจะมีวิธีการเก็บชื่อของรูปภาพที่อัพโหลดไว้ใน database ได้อย่างไร เพื่อที่จะสามารถนำมันไปใช้ไปส่วนอื่นๆได้

เอาเป็นว่าเรามาดูวิธีการเขียนโค้ดกันเลยดีกว่านะครับ

ส่วนแรกเราต้องสร้างโฟล์เดอร์ชื่อว่า uploadfiles เพื่อใช้ในการเก็บรูปภาพก่อนนะครับ ดูตัวอย่างการวางไฟล์ได้จากรูป
[You must be registered and logged in to see this image.]

ส่วนที่สองเป็นการสร้าง db เพื่อใช้เก็บข้อมูลรูปภาพก่อนเลยนะครับ โดยจะใช้เก็บชื่อรูปที่ได้อัพโหลดเข้าไปนะครับ เพื่อนๆสามารถนำไปประยุกต์ใช้กับส่วนอื่นๆ ก็ได้นะครับ
[You must be registered and logged in to see this image.]

SQL

view sourceprint?1 CREATE TABLE IF NOT EXISTS `image` (

2 `id` int(11) NOT NULL AUTO_INCREMENT,
3 `namepic` varchar(100) NOT NULL,
4 PRIMARY KEY (`id`)
5 ) ENGINE=MyISAM DEFAULT AUTO_INCREMENT=1 ;
เมื่อเราได้ฐานข้อมูลแล้วต่อไปก็เป็นการสร้าง From เพื่ออัพโหลดรูปภาพโดยสร้างหน้าที่ชื่อว่า uploadpic.php ขึ้นมาเพื่อใช้เป็นหน้าอัพโหลดรูป
[You must be registered and logged in to see this image.]

uploadpic.php

01 <html>
02 <head>
03 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
04 </head>
05 <body>
06 <form method="post" action="uploadpic_check.php" enctype="multipart/form-data">
07 <p>
08 <input type="File" name="img" value="" >
09 <br>
10 <input type="submit" name="Upload" value="Upload" >
11 </p>
12 </form>
13 </body>
14 </html>
เมื่อได้หน้า From แล้วต่อไปเราก็จะมาสร้างหน้าที่ใช้ในการเก็บรูปภาพไว้ในโฟลเดอร์ และใน db ของเราโดย from uploadpic.php จะส่งค่ามาเช็คและทำการอัพโหลดรูปที่หน้า uploadpic_check.php เอาเป็นว่าเรามาดูการสร้างหน้านี้กันเลยดีกว่าครับ


uploadpic_check.php

01 <?php
02 if($_FILES['img']['tmp_name'] !="") #เช็คว่าไฟล์ที่อัพรูปไม่ใช่ค่าว่าง
03 {
04 $filename = $_FILES['img']['name'];
05 $filetempname = $_FILES['img']['tmp_name'];
06 $filesize =$_FILES['img']['size'];
07 $filetype =$_FILES['img']['type'];
08 #ตรวจสอบขนาดของรูปที่ Post เข้ามา
09 $max_photo_size = 112000 ; #ตั้งไว้ 100 Kb(กิโลไบต์) : 1 Kb เท่ากับ 1024 Byte
10 $random_digit=rand(0000000,9999999);
11 $topic_run = "pic_".$random_digit; #เพื่อให้ชื่อภาพไม่ซ้ำกัน โดยการเปลี่ยนชื่อภาพให้ชื่อว่า pic + random เลขเพื่อป้องกันชื่อซ้ำ
12 if ( $filesize > $max_photo_size ) {
13 print "ขนาดรูปใหญ่เกิน" ;
14 exit(); };
15 #สิ้นสุดการตรวจสอบขนาดรูป
16 #ทำการอัพโหลดและเปลี่ยนชื่อรูปลงดาต้าเบส หากต้องการไฟล์ชนิดอื่นก็เพิ่มเข้าไป
17 if ( $filetype == "image/gif" )
18 {
19 $filename = $topic_run.".gif";
20 }
21 if ( $filetype == "image/png" )
22 {
23 $filename = $topic_run.".png";
24 }
25 elseif (($filetype=="image/jpg")||($filetype=="image/jpeg")||($filetype=="image/pjpeg"))
26 {
27 $filename = $topic_run.".jpg";
28 }
29 @copy ($filetempname , "uploadfiles/" . $filename );
30 #สิ้นสุดการอัพโหลดรูป
31 #เพื่อเก็บชื่อของรูปที่อัพโหลดแล้วเก็บไว้ในฐานข้อมูล
32 $host = "localhost"; #โดยมากจะใช้ localhost
33 $username = "username"; #username ในการเข้าถึง Mysql
34 $password = "password"; #password ในการเข้าถึง Mysql
35 $dbname = "test"; #ชื่อฐานข้อมูล
36 mysql_connect($host, $username, $password) or die ("ติดต่อกับฐานข้อมูล Mysql ไม่ได้ ");
37 mysql_select_db($dbname) or die("เลือกฐานข้อมูลไม่ได้");
38 mysql_query("SET NAMES 'tis620' ");
39 $sql = "insert into image (namepic) values ('".$filename."')";
40 $create = mysql_query($sql) or die ("ไม่สามารถสั่งให้ database ทำการเพิ่มข้อมูลได้");
41 print "อัพโหลดรูปภาพสำเร็จ" ;
42 } else {
43 print "กรุณาใส่รูปภาพด้วยครับ" ;
44 }
45 ?>


เมื่อเราทดสอบอัพรูปภาพเราก็จะได้ข้อมูลที่เก็บไว้ 2 ส่วนก็คือส่วนของรูปภาพที่อัพโหลด กับ ส่วนของชื่อไฟล์ที่เก็บไว้ใน database เพื่อสามารถนำไปใช้ได้นะครับ
ส่วนแรกรูปภาพก็จะเก็บไว้ในโฟลเดอร์ชื่อว่า uploadpic ทีได้สร้างขึ้นตามข้างตัน



ส่วนที่ของชื่อของรูปก็จะเก็บไว้ใน database เพื่อสามารถนำไปใช้ต่อไปนะครับ





แค่นี้ก็เสร็จเรียบร้อยแล้วหละครับ เพื่อนๆสามารถนำไปประยุกต์ใช้กับส่วนต่างๆของเว็บไซต์ที่เพื่อนๆสร้างขึ้นมาได้ตามต้องการเลยนะครับ หากมีข้อสงสัยอะไรคอมเม้นถามได้นะครับ



แก้ไขล่าสุดโดย Pz- เมื่อ Thu Feb 10, 2011 2:28 pm, ทั้งหมด 1 ครั้ง

Pz-
<< IT.Management 51 >>
>

จำนวนข้อความ : 85
Join date : 21/01/2011
Age : 908
ที่อยู่ : Thailand

ขึ้นไปข้างบน Go down

ซ้อม

ตั้งหัวข้อ  NicezaITM51 on Thu Feb 03, 2011 2:33 pm

<?php
if($_FILES['img']['tmp_name'] !="") #เช็คว่าไฟล์ที่อัพรูปไม่ใช่ค่าว่าง
{
$filename = $_FILES['img']['name'];
$filetempname = $_FILES['img']['tmp_name'];
$filesize =$_FILES['img']['size'];
$filetype =$_FILES['img']['type'];
#ตรวจสอบขนาดของรูปที่ Post เข้ามา
$max_photo_size = 112000 ; #ตั้งไว้ 100 Kb(กิโลไบต์) : 1 Kb เท่ากับ 1024 Byte
$random_digit=rand(0000000,9999999);
$topic_run = "pic_".$random_digit; #เพื่อให้ชื่อภาพไม่ซ้ำกัน โดยการเปลี่ยนชื่อภาพให้ชื่อว่า pic + random เลขเพื่อป้องกันชื่อซ้ำ
if ( $filesize > $max_photo_size ) {
print "ขนาดรูปใหญ่เกิน" ;
exit(); };
#สิ้นสุดการตรวจสอบขนาดรูป
#ทำการอัพโหลดและเปลี่ยนชื่อรูปลงดาต้าเบส หากต้องการไฟล์ชนิดอื่นก็เพิ่มเข้าไป
if ( $filetype == "image/gif" )
{
$filename = $topic_run.".gif";
}
if ( $filetype == "image/png" )
{
$filename = $topic_run.".png";
}
elseif (($filetype=="image/jpg")||($filetype=="image/jpeg")||($filetype=="image/pjpeg"))
{
$filename = $topic_run.".jpg";
}
@copy ($filetempname , "uploadfiles/" . $filename );
#สิ้นสุดการอัพโหลดรูป
#เพื่อเก็บชื่อของรูปที่อัพโหลดแล้วเก็บไว้ในฐานข้อมูล
$host = "localhost"; #โดยมากจะใช้ localhost
$username = "root"; #username ในการเข้าถึง Mysql
$password = "1234"; #password ในการเข้าถึง Mysql
$dbname = "Database"; #ชื่อฐานข้อมูล
mysql_connect($host, $username, $password) or die ("ติดต่อกับฐานข้อมูล Mysql ไม่ได้ ");
mysql_select_db($dbname) or die("เลือกฐานข้อมูลไม่ได้");
mysql_query("SET NAMES UTF8 ");
$sql = "insert into pic (namepic) values ('".$filename."')";
$create = mysql_query($sql) or die ("ไม่สามารถสั่งให้ database ทำการเพิ่มข้อมูลได้");
print "success" ;
} else {
print "Insert Picture" ;
}
?>

avatar
NicezaITM51
<< IT.Management 51 >>
>

จำนวนข้อความ : 24
Join date : 20/01/2011
Age : 29
ที่อยู่ : 169/089 ข.สายไหม อ.คลองถนน กรุงเทพฯ 10220

ขึ้นไปข้างบน Go down

Re: วิชาอาจารย์ตาล สำหรับคนขี้เกลียดพิมพ์

ตั้งหัวข้อ  Pz- on Thu Feb 03, 2011 2:38 pm

ซ่อม ตามอาจารย์เลยนะ

Uploadpic.php

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<form method="post" action="uploadpic_check.php" enctype="multipart/form-data">
<p>
<input type="File" name="img" value="" >
<br>
<input type="submit" name="Upload" value="Upload" >
</p>
</form>
</body>
</html>


uploadpic_check.php

<?php
if($_FILES['img']['tmp_name'] !="") #เช็คว่าไฟล์ที่อัพรูปไม่ใช่ค่าว่าง
{
$filename = $_FILES['img']['name'];
$filetempname = $_FILES['img']['tmp_name'];
$filesize =$_FILES['img']['size'];
$filetype =$_FILES['img']['type'];
#ตรวจสอบขนาดของรูปที่ Post เข้ามา
$max_photo_size = 112000 ; #ตั้งไว้ 100 Kb(กิโลไบต์) : 1 Kb เท่ากับ 1024 Byte
$random_digit=rand(0000000,9999999);
$topic_run = "pic_".$random_digit; #เพื่อให้ชื่อภาพไม่ซ้ำกัน โดยการเปลี่ยนชื่อภาพให้ชื่อว่า pic + random เลขเพื่อป้องกันชื่อซ้ำ
if ( $filesize > $max_photo_size ) {
print "ขนาดรูปใหญ่เกิน" ;
exit(); };
#สิ้นสุดการตรวจสอบขนาดรูป
#ทำการอัพโหลดและเปลี่ยนชื่อรูปลงดาต้าเบส หากต้องการไฟล์ชนิดอื่นก็เพิ่มเข้าไป
if ( $filetype == "image/gif" )
{
$filename = $topic_run.".gif";
}
if ( $filetype == "image/png" )
{
$filename = $topic_run.".png";
}
elseif (($filetype=="image/jpg")||($filetype=="image/jpeg")||($filetype=="image/pjpeg"))
{
$filename = $topic_run.".jpg";
}
@copy ($filetempname , "uploadfiles/" . $filename );
#สิ้นสุดการอัพโหลดรูป
#เพื่อเก็บชื่อของรูปที่อัพโหลดแล้วเก็บไว้ในฐานข้อมูล
$host = "localhost"; #โดยมากจะใช้ localhost
$username = "root"; #username ในการเข้าถึง Mysql
$password = "1234"; #password ในการเข้าถึง Mysql
$dbname = "db"; #ชื่อฐานข้อมูล
mysql_connect($host, $username, $password) or die ("ติดต่อกับฐานข้อมูล Mysql ไม่ได้ ");
mysql_select_db($dbname) or die("เลือกฐานข้อมูลไม่ได้");
mysql_query("SET NAMES UTF8");
$sql = "insert into pic (namepic) values ('".$filename."')";
$create = mysql_query($sql) or die ("ไม่สามารถสั่งให้ database ทำการเพิ่มข้อมูลได้");
print "success" ;
} else {
print "Insert Picture" ;
}
?>
[quote]


แก้ไขล่าสุดโดย Pz- เมื่อ Thu Feb 03, 2011 3:07 pm, ทั้งหมด 1 ครั้ง

Pz-
<< IT.Management 51 >>
>

จำนวนข้อความ : 85
Join date : 21/01/2011
Age : 908
ที่อยู่ : Thailand

ขึ้นไปข้างบน Go down

.......?

ตั้งหัวข้อ  nongjah on Thu Feb 03, 2011 2:57 pm

โอ๊ยมะเหนได้เลย Sad
avatar
nongjah
Normal User
Normal User

จำนวนข้อความ : 4
Join date : 01/02/2011

ขึ้นไปข้างบน Go down

Re: วิชาอาจารย์ตาล สำหรับคนขี้เกลียดพิมพ์

ตั้งหัวข้อ  Pz- on Thu Feb 03, 2011 3:14 pm

ได้ละนิ rendeer

Pz-
<< IT.Management 51 >>
>

จำนวนข้อความ : 85
Join date : 21/01/2011
Age : 908
ที่อยู่ : Thailand

ขึ้นไปข้างบน Go down

ขึ้นไปข้างบน


 
Permissions in this forum:
คุณไม่สามารถพิมพ์ตอบ