การเก็บข้อมูลที่เป็นรูปภาพ อยากเก็บรูปภาพโดยหน้าเว็บเป็นปุ๋ม Browse อ่ะครับ
หน้าเว็บใส่ไอ้นี่ลงไปคับ
<input type="file" name="Upload">
<input type="submit" name="button" id="button" value="ยืนยันข้อมูล">
อย่าลืม <action ไปที่ไฟล์ด้านล่างนี้นะครับ หรือจะไว้หน้าเดียวกันก็ได้>
ส่วนโค๊ดประมาณนี้ครับ
<?
if(copy($_FILES["filUpload"]["tmp_name"],"images".$_FILES["filUpload"]["name"]))
{
include('config.php');ไฟล์สำหรับติดต่อฐานข้อมูล
$strSQL = "INSERT INTO images ";ใช้คำสั่งเก็บรูปไว้ที่ฐานข้อมูล
$strSQL .="(images)";
$strSQL.=" VALUES";
$strSQL.="('".$_FILES["filUpload"]["name"]."' ";
$objQuery = mysql_query($strSQL) or die (mysql_error());
}
Date :
2010-01-11 10:57:35
By :
Dragons_first
ที่เคยเห็นมีอยู่ 2 แบบคือ
1.อัปโหลดรูปเก็บไว้ในโฟลเดอร์ แล้วเก็บชื่อรูปไว้ในฐานข้อมูล
2.อัปโหลดรูปอัดลงไปในฐานข้อมูลเลย
แนะนำให้เก็บเป็น แบบที่ 1 อย่างที่คุณ อ้นคุง แนะนำไว้นะคะจะง่ายกว่า
ฐานข้อมูลก็สร้าง field เป็น string เก็บข้อความธรรมดา
เวลาเรียกใช้ก็แทรกไว้ใน tag <img src="ชื่อที่เก็บไว้ในฐานข้อมูล">
Date :
2010-01-11 11:08:06
By :
ultrasiam
แบบที่ 2 มีข้อเสียแบบไหนเหรอครับถึงไม่แนะนำ
โค๊ดที่คุณ อ้นคุง ให้มามันเก็บรูปใส่ไว้ใน folder แล้วเก็บ ชื่อ ไว้ที่ฐานข้อมูลเลยใช้ไหมครับ
ปล.ขอบคุณทั้ง 2 ท่านครับ
Date :
2010-01-11 11:28:01
By :
kitkunpai
insert.php
Code (PHP)
<form method="post" action="<? $PHP_SELF; ?>">
รูปภาพ:<input type="file" name="picture">
<br><br>
<input type="submit" value="ตกลง" name="send">
<input type="reset" value="ยกเลิก" name="cancle">
</div>
</form>
<?
} else
{
$path_pic="c:/AppServ/www/ฟลอเดอร์งาน/image/";
if ($picture !=none)
{
if (copy ($picture,"$path_pic/$type.jpg"))
{ $image=$type.".jpg";
$link = mysql_connect("localhost","root","1234");//ติดต่อฐานข้อมูล
mysql_query("Use word;");//ฐานข้อมูล
mysql_query("set NAMES tis620");
$sql = "Insert Into word_data(picture) Values ('$image');";//ตารางข้อมูล
$result = mysql_query($sql);
if ($result)
{
echo "เพิ่มรายการสำเร็จแล้ว<p>";
mysql_close($link);
}
else
{
echo "ไม่สามารถเพิ่มรายการร้านได้ กรุณาเพิ่มใหม่<p>";
}
}
else
print ("กรุณาเพิ่มรูปด้วย");
}
else
echo "No file to be uploaded!";
}
?>
Date :
2010-01-11 11:42:14
By :
parita
ขอถามหลักการหน่อยครับ
คือ code ที่ท่านให้มา
มีการทำ 1 กระบวนการ คือ
1.การเก็บที่อยู่ของรูป
หรือมี 2 กระบวนการคือ
1.การเก็บที่อยู่ของรูป
2.การ up รูปไปที่โปรเดอร์ที่เราต้องการบน host
Date :
2010-01-11 13:59:35
By :
kitkunpai
มี 2 step ค่ะ
1. ใช้คำสั่ง copy() ก๊อบรูปภาพไปไว้ใน folder ที่ต้องการ
2. เก็บที่อยู่ของรูปและชื่อรูปลงฐานข้อมูล
Date :
2010-01-11 14:03:16
By :
ultrasiam
code ที่คุณ ultrasiam พูดถึงคือของคุณ T ใช่ไหมครับหรือของทั้งสองท่านหรือของทั้งสองท่าน
Date :
2010-01-11 14:11:38
By :
kitkunpai
ของทั้งสองท่านค่ะ
Date :
2010-01-11 14:15:33
By :
ultrasiam
ของคุณ T ผมติดแบบนี้อ่ะครับ
Warning: copy(IMG_0170.JPG) [function.copy]: failed to open stream: No such file or directory in C:\AppServ\www\ISMC_PHP\Untitled-1.php on line 13
Date :
2010-01-11 14:26:01
By :
kitkunpai
ของคุณ T จะมีการ กำหนด path ไว้
$path_pic="c:/AppServ/www/ฟลอเดอร์งาน/image/";
แก้ตรงนี้ให้เป็นของคุณนะคะ
Date :
2010-01-11 14:28:49
By :
ultrasiam
แล้วถ้าจะแก้ CSS เปลี่ยนปุ่ม browse เป็นปุ่มที่เรากำหนดเอง ใครทำได้มั้ง
Date :
2010-01-11 14:31:20
By :
indysoft
ผมลองแก้ดูแล้วครับ
ไม่ได้ครับ
มันไม่ได้เป็นที่ผมไม่มี function.copy เหรอครับ
Date :
2010-01-11 14:32:57
By :
kitkunpai
copy เป็น function ที่มากับ php อยุ่แล้วค่ะ
Date :
2010-01-11 14:44:07
By :
ultrasiam
แก้ให้แล้วคราบ พร้อม session ความปลอดภัยให้
Code (PHP)
<?
session_start();
if (($user == "")&&($password == ""))
{
if(!$send){
?>
<style type="text/css">
<!--
.style1 {
font-family: AngsanaUPC;
font-weight: bold;
font-size: 28px;
}
-->
</style>
<form method="post" action="<? $PHP_SELF; ?>">
รูปภาพ:<input type="file" name="picture">
<input type="submit" value="ตกลง" name="send">
<input type="reset" value="ยกเลิก" name="cancle">
</div>
</form>
<?
} else
{
$path_pic="c:/AppServ/www/word/image/";
if ($picture !=none)
{
if (copy ($picture,"$path_pic/$type.jpg"))
{ $image=$type.".jpg";
$link = mysql_connect("localhost","root","");
mysql_query("Use word;");
mysql_query("set NAMES tis620");
$sql = "Insert Into word_data(picture) Values ('$image');";
$result = mysql_query($sql);
if ($result)
{
echo "เพิ่มรูปภาพสำเร็จแล้ว<p>";
mysql_close($link);
}
else
{
echo "ไม่สามารถเพิ่มเพิ่มรูปภาพได้ กรุณาเพิ่มใหม่<p>";
}
}
else
print ("กรุณาเพิ่มรูปภาพ");
}
else
echo "No file to be uploaded!";
}
}
else
{
echo "<center><h3>กรุณากลับไปเข้ารหัสใหม่</h3><center>";
}
?>
Date :
2010-01-11 14:47:02
By :
parita
ผมลอง code อันใหม่ของคุณ T แล้วนะครับ
ผมลองเล่นดูก็ยังติดที่ Warning: copy(P1020924.JPG) [function.copy]: failed to open stream: No such file or directory in C:\AppServ\www\ISMC_PHP\Untitled-1.php on line 31 ครับ
ผมลองสร้างฐานข้อมูลใหม่ตามที่คุณ T ใหม่มาแล้วนะครับ
Date :
2010-01-11 14:59:45
By :
kitkunpai
Code (PHP)
<form method="post" action="<? $PHP_SELF; ?>" enctype="multipart/form-data">
รูปภาพ:<input type="file" name="picture">
<br><br>
<input type="submit" value="ตกลง" name="send">
<input type="reset" value="ยกเลิก" name="cancle">
</div>
</form>
<?
if($_REQUEST['send']){
$picture=$_FILES["picture"]["tmp_name"];
$filename=$_FILES["picture"]["name"];
$path="image/"; //folder ของคุณ
$image=$path.$filename;
if(copy($picture,$image)){
/* แทรกคำสั่งในการติดต่อฐานข้อมูลของคุณ*/
$sql = "Insert Into word_data(picture) Values ('$image');";//ตารางข้อมูล
$result = mysql_query($sql);
if($result){
echo "เพิ่มรายการสำเร็จแล้ว<p>";
}else{
echo "ไม่สามารถเพิ่มรายการร้านได้ กรุณาเพิ่มใหม่<p>";
}
}
}
ลองอันนี้นะคะ ดัดแปลงมาจากของคุณ T
Date :
2010-01-11 15:14:08
By :
ultrasiam
อ๋อ รู้แล้ว ว่าทำไม สมมุติว่า
polder งานชื่อ word ในpolder งานนั้น น้องต้องสร้าง polder เก็บรูปด้วย
ชื่อ polder ว่า image คราบ
Date :
2010-01-11 15:17:58
By :
parita
ได้แล้วครับ
สรุปใช้โค๊ดของคุณ ultrasiam แล้วได้ครับ
เหนื่อยมากๆเลยไม่เคยเรียน PHP มาเลย(เด็กใหม่สุดๆ)
ขอบคุณทุกท่านมากเลยนะครับ
ปล.ไม่ทราบว่ามันติดเพราะอะไรเหรอกครับอยากทราบไว้เพื่อใครติดจะได้แก้ให้เขาได้บ้าง
ปล2.ขอบคุณ คุณ ultrasiam และ คุณ T มากเลยครับที่ช่วยแก้จนสำเร็จเลยครับ
ขอบคุณอีกครั้ง
และอีกครั้ง
Date :
2010-01-11 15:38:15
By :
kitkunpai
คราบไม่เป็นรัยคราบ
มีปัญหาอะรัยก็ตั้งกระทู้เลย
พี่ๆเขาพร้อมที่จะช่วยคราบ
Date :
2010-01-11 15:42:35
By :
parita
ขอถามเพิ่มหน่อยครับ
ฟังก์ชั่น copy อ่ะครับหากผมต้องการให้มันก๊อป 2 รูปต้องใช้ยังไงกับ
คือในตัวอย่างมันแค่รูปเดียวครับ
เวลาผมใช้จริงผมเก็บ 2 รูปอ่ะครับ
คือรูปเล็ก 1 รูปแล้วรูปใหญ่ 1 รูป
ผมติดตรง if(copy($picture,$image)เนี้ยครับ
ผมลองเขียนแบบนี้มันไม่ได้ครับ if(copy($picture,$image)or($picture_big,$image_big)) น่าจะเขียนผิดรูปแบบอ่ะครับ
ช่วยแก้หน่อยนะครับ
Date :
2010-01-12 11:39:34
By :
kitkunpai
คำสั่ง copy() สามารถ copy ได้ทีละไฟล์ค่ะ
ต้องการอัพโหลด 2 ไฟล์ ก็เขียน copy 2 ครั้งค่ะ
Date :
2010-01-12 12:21:06
By :
ultrasiam
ลืมโค้ด อิอิ
Code (PHP)
$copied1=copy($picture,$image);
$copied2=copy($picture_big,$image_big);
if($copied1 & $copied2){
echo "สำเร็จ";
}
Date :
2010-01-12 12:27:38
By :
ultrasiam
ขอบคุณครับได้แว้ว.........
Date :
2010-01-12 13:27:42
By :
kitkunpai
ขอแก้ไขรูปภาพด้วยได้มะครับ
Date :
2010-10-03 00:05:30
By :
กร
Load balance : Server 00