upload รูป ลง SQL แล้วนำมาแสดง...คือ ผมทำ ระบบ สมาชิก แล้วที่นี้ผม ให้สมาชิก สามารถ อัพโหลด รูปตัวเองลง MYSQL
อัพโหลดแบบอัพโหลดภาพ ปกติ
แต่ชนิดข้อมูลของฟิลล์ที่เก็บภาพต้องเป็นชนิด banary ครับ
ทำไมไม่เก็บภาพไว้ที่โฟลเดอร์ แล้วเก็บชื่อไว้ที่ mysql ล่ะครับ
Date :
2010-08-31 17:25:37
By :
iieszz
/* ::::::::::::::::::::::::::::::::::::::::::::::::::::: TABLE images ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
CREATE TABLE `images` (
`img` INT NOT NULL AUTO_INCREMENT ,
`data` LONGTEXT NOT NULL ,
PRIMARY KEY ( `img` )
);
/* ::::::::::::::::::::::::::::::::::::::::::::::::::::: upload.php ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
<?php
//connect to database. Username and password need to be changed
mysql_connect("localhost", "username", "password");
//Select database, database_name needs to be changed
mysql_select_db("database_name");
if (!$_POST['uploaded']){
//If nothing has been uploaded display the form
?>
<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post"
ENCTYPE="multipart/form-data">
Upload:<br><br>
<input type="file" name="image"><br><br>
<input type="hidden" name="uploaded" value="1">
<input type="submit" value="Upload">
</form>
<?
}else{
//if the form hasn't been submitted then:
//from here onwards, we are copying the file to the directory you made earlier, so it can then be moved
//into the database. The image is named after the persons IP address until it gets moved into the database
//get users IP
$ip=$REMOTE_ADDR;
//don't continue if an image hasn't been uploaded
if (!empty($image)){
//copy the image to directory
copy($image, "./temporary/".$ip."");
//open the copied image, ready to encode into text to go into the database
$filename1 = "./temporary/".$REMOTE_ADDR;
$fp1 = fopen($filename1, "r");
//record the image contents into a variable
$contents1 = fread($fp1, filesize($filename1));
//close the file
fclose($fp1);
//encode the image into text
$encoded = chunk_split(base64_encode($contents1));
//insert information into the database
mysql_query("INSERT INTO images (img,data)"."VALUES ('NULL', '$encoded')");
//delete the temporary file we made
unlink($filename1);
}
//end
}
?>
/* ::::::::::::::::::::::::::::::::::::::::::::: image.php ::::::::::::::::::::::::::::::::::::::::::::::::::: */
<?php
//connect to database. Username and password need to be changed
$connection=mysql_connect("localhost", "username", "password");
//Select database, database_name needs to be changed
mysql_select_db("database_name");
//get decoded image data from database
$result=mysql_query("SELECT * FROM images WHERE img='".$_GET['img']."'");
//fetch data from database
$data=mysql_fetch_array($result);
$encoded=$data['data'];
//note: "$data['data']" is the row "data" in the table we made.
//The image ID would be "$data['img']" for example
//close connection
mysql_close($connection);
//decode and echo the image data
echo base64_decode($encoded);
//end
?>
Date :
2010-08-31 17:27:02
By :
burn
ช่วยอธิบายหน่อยได้ไหม คับ
Date :
2010-08-31 17:28:39
By :
pissanu101
แล้วจะทำให้มันเป็นถาพของสมาชิกคนนั้นโดยเฉพาะละคับ แบบว่าเป้นภาพประจำตัวอะคับ
Date :
2010-08-31 17:33:23
By :
pissanu101
ก็เพิ่ม field สมาชิก เข้าไปสิครับ ก็เก็บรหัสสามชิก ก็จะได้ สมาชิก และ รูป
อ่ะสมมติ ให้แล้วกัน
หลังจาก Login
มี session["member_code"]
พอสมาชิก ทำการ add image ตัวเอง
ก็ insert image, session["member_code"] เข้าไป
จบการบรรยาย :D
Date :
2010-08-31 17:55:25
By :
burn
รูปมันไม่add ลงใน SQL อะคับ ตามcode ข้างต้นที่ให้มานะคับ
Date :
2010-08-31 18:31:53
By :
pissanu101
แสดงว่า เกิด Error ไงครับ ค่อย ดู Error ว่าบรรทัดที่เท่าไหร่ นะ แล้วก็ทำการ echo ก่อน line ที่ Error 1 บรรทัด แล้วก็ใช้คำสั่ง exit();
ควบคู่นะ จะได้รู้ว่า มันไปไหนยังไง มาแบบไหน นะครับ
Date :
2010-08-31 18:49:47
By :
burn
คือมันมีสองแบบนะครับ
1. คุณเอาไฟล์ภาพนั้นยัดเข้าไปในฐานข้อมูลเลย
2. คุณทำการเก็บ path ของรูปและชื่อของไฟล์ไว้และตัวไฟล์ภาพเก็บที่ server
ซึ่งส่วนใหญ่จะทำวิธีที่สองกัน
โดยวิธีแรกนั้นจะง่ายตอนเอาข้อมูลยัด
แต่วิธีที่สองง่ายต่อการจัดเก็บครับ
ซึ่งถามว่าทำอย่างไรมันยาวอ่ะขี้เกียจตอนนี้ไม่มีแรงบันดาลใจในการตอบรอคนอื่นก่อนเน้อ
ไ่มงั้นจะเขียนบล๊อก how to ให้ดูแล้วกัน
Date :
2010-08-31 18:50:49
By :
oxygenyoyo
Load balance : Server 01