|
|
|
อยากทำ form เหมือน Edit Profile ของเว็บนี้อ่ะครับ |
|
|
|
|
|
|
|
แบบว่ามีให้อัพรูปด้วยอ่ะครับ
แบบนี้ อ่ะครับ
|
|
|
|
|
Date :
2009-10-11 21:48:49 |
By :
oasiis |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตรวจสอบดูว่ามีการ upload ไฟล์เข้ามาหรือเปล่า ถ้ามีก็บันทึกไฟล์ครับ
Code (PHP)
<?php
$id = (int)$_GET['id'];
if (!empty($_FILES['upload_file']['name'])){
move_uploaded_file(
$_FILES['upload_file']['tmp_name'],
'c:/www/images/profile/'.$id.'.jpg'
);
}
?>
...
....
<form action="?id=<?php echo (int)$_GET['id'];?>" method="post" enctype="multipart/form-data">
<input type="file" name="upload_file" />
<input type="submit" name="submit" value="edit" />
</form>
|
|
|
|
|
Date :
2009-10-11 22:31:28 |
By :
num |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
งง ครับ
ช่วยอธิบายหลักการหน่อยได้มั้ยครับพี่หนุ่ม
ผมต้องการสร้างฟอร์ม insert ทั้งข้อมูล และรูปภาพ อ่ะครับ
|
|
|
|
|
Date :
2009-10-11 22:40:05 |
By :
oasiis |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอาคำตอบของแป๊ะไปปรับเข้ากับการอัฟโหลดภาพ ซึ่งมีในบทความอยู่แล้ว ลองดูก่อนซิครับ
|
|
|
|
|
Date :
2009-10-11 22:58:58 |
By :
plakrim |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คืออยากทราบการอ่ะครับว่า ควรทำแบบไหน?
การ insert ข้อมูลที่เป็น textfile ผมพอเข้าใจ แต่ข้อมูลที่เป็น img นั้นผมยังไม่ทราบหลักการ ไม่รู้ว่าจะ insert ข้อมูลทั้ง textfile และ img พร้อมกันต้องทำอย่างไร
|
|
|
|
|
Date :
2009-10-11 23:10:23 |
By :
oasiis |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<?php
require_once('connect.php');
$id = (int)$_GET['id'];
//ตรวจสอบว่ามีการเลือกไฟล์ upload ใหม่เข้ามาหรือเปล่า
//ถ้าไม่มีก็ไม่ต้องบันทึกไฟล์ใหม่ ถ้ามีก็บันทึกไฟล์โดยใช้ $id หรือ id ของ record เป็นชื่อไฟล์ .jpg
//ใน folder ที่ใช้เก็บรูปของ profile
if (!empty($_FILES['upload_file']['name'])){
move_uploaded_file(
$_FILES['upload_file']['tmp_name'],
'c:/www/images/profile/'.$id.'.jpg'
);
}
//ถ้ามีการ submit ข้อมูลมาแล้วทำการบันทึกข้อมูลใหม่ลงไป
if (!empty($_POST['submit'])){
$query = "UPDATE tb SET column1='{$_POST['column1']}', colum2='{$_POST['column2']}' WHERE id = '$id' ";
mysql_query($query);
//ย้ายไปยังหน้าที่มีการ request แบบ get เพื่อให้การ refresh เว็บเพจไม่ทำให้เกิดการเปลี่ยนแปลงข้อมูล
header("location:?id=$id");
exit;
}
//ดึงข้อมูลจาก
$r = mysql_query("SELECT * FROM tb WHERE id='$id' ");
$row = mysql_fetch_assoc($r);
?>
...
....
<form action="?id=<?php echo $id;?>" method="post" enctype="multipart/form-data">
<input type="text" name="column1" value="<?php echo htmlspecialchars($row['column1']);?>" />
<input type="text" name="column2" value="<?php echo htmlspecialchars($row['column2']);?>" />
<!-- แสดงไฟล์โดยระบุ folder ที่เก็บไฟล์ไว้ -->
<img src="/images/profile/<?php echo $id;?>.jpg" width="60" height="80" />
<input type="file" name="upload_file" />
<input type="submit" name="submit" value="edit" />
</form>
คร่าวๆ ก่อนนะ มีตรงไหนสงสัยเพิ่มเติมถามได้ครับ
|
|
|
|
|
Date :
2009-10-11 23:10:53 |
By :
num |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พี่หนุ่มใจดีอีกแล้ว
การเอาโค๊ดพี่หนุ่มไปใช้ กรุณาทำความเข้าใจด้วยนะครับ ไม่ใช่ว่าใช้งานได้ก็ผ่านๆ ไป ที่นี่อยากให้คนในบอร์ดเข้าใจไม่ใช่แค่ผ่าน
|
|
|
|
|
Date :
2009-10-11 23:16:52 |
By :
plakrim |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แล้วถ้าเป็นการ insert ล่ะครับ
|
|
|
|
|
Date :
2009-10-11 23:38:41 |
By :
oasiis |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอนแรกหาค่า id ของ record ที่ insert เข้าไปใหม่ก่อนครับ
Code (PHP)
if (!empty($_POST['submit'])){
mysql_query('INSERT INTO ..');
$id = mysql_insert_id();
//...
}
//ตรง ... ให้ใส่โค้ด upload เหมือนกับตอน edit ครับ
if (!empty($_FILES['upload_file']['name'])){
move_uploaded_file(
$_FILES['upload_file']['tmp_name'],
'c:/www/images/profile/'.$id.'.jpg'
);
}
|
|
|
|
|
Date :
2009-10-11 23:42:31 |
By :
num |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอนแรกหาค่า id ของ record ที่ insert เข้าไปใหม่ก่อนครับ
if (!empty($_POST['submit'])){
mysql_query('INSERT INTO ..');
$id = mysql_insert_id();
//...
}
ตรง ... ให้ใส่โค้ด upload เหมือนกับตอน edit ครับ
if (!empty($_FILES['upload_file']['name'])){
move_uploaded_file(
$_FILES['upload_file']['tmp_name'],
'c:/www/images/profile/'.$id.'.jpg'
);
}
บอกตรงๆ น่ะครับ งงอ่ะครับ
|
|
|
|
|
Date :
2009-10-12 18:16:29 |
By :
oasiis |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เหมือนการ insert ทุกอย่างครับ ยกเว้นตั้งแต่ส่วนที่ (1) - (2)
และ form ต้องระบุ enctype="multipart/form-data" ครับ
สมมุติไฟล์ php ที่ใช้ insert + upload รูปนี้อยู่ที่ c:/www/add_profile.php ครับ
$_FILES['upload_file']['name'] จะเป็นชื่อไฟล์ที่ผู้ใช้ upload มาครับ เช่น test.jpg
$_FILES['upload_file']['tmp_name'] เป็น path เช่น c:/temp/temp_file.tmp เป็นไฟล์ที่ upload ขึ้นมาครับ แต่ชื่อจะถูกเปลี่ยนไม่ให้ซ้ำกับไฟล์ upload อื่นๆ
ตรง 'c:/www/images/profile/'.$id.'.jpg'
จะเป็นการนำ id ของ record มาตั้งเป็นชื่อไฟล์ครับ
move_uploaded_file($_FILES['upload_file']['tmp_name'],'c:/www/images/profile/'.$id.'.jpg');
จะเป็นการย้ายไฟล์มายังตำแหน่งที่ต้องการครับซึ่งอาจจะเปลี่ยนเป็น
move_uploaded_file($_FILES['upload_file']['tmp_name'],'images/profile/'.$id.'.jpg');
ก็ได้ครับให้ผลเช่นเดียวกัน
ตัวอย่างคร่าวๆ ครับ
<?php
require_once 'connect.php';
if (!empty($_POST['submit'])){
mysql_query("INSERT INTO tb(column1) VALUES ('{$_POST['username']}') ");
$id = mysql_insert_id();
if (!empty($_FILES['upload_file']['name'])){ //....(1)
move_uploaded_file(
$_FILES['upload_file']['tmp_name'],
'c:/www/images/profile/'.$id.'.jpg'
);
} //.....(2)
}
?>
<form method="post" enctype="multipart/form-data" action="">
<input type="text" name="username" value="" />
<input type="file" name="upload_file" />
<input type="submit" name="submit" value="submit" />
</form>
โค้ดข้างบนเป็นการ insert นะครับ ทีนี้เวลาเราจะแสดงรูปของ record นั้นตอนแสดงผล (select)
ก็แค่เอา <img src="images/profile/<?php echo $row['id'];?>.jpg" /> ขึ้นมาแสดงครับ
|
|
|
|
|
Date :
2009-10-12 18:37:27 |
By :
num |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้ได้แต่ get หรอครับ post ใช้ได้ไหมครับ
แล้วเปลี่ยนจากการเก็บไว้ที่ path เป็นการเก็บไว้ใน database ได้ไหมครับ
|
|
|
|
|
Date :
2012-02-12 22:58:18 |
By :
hustlerunz1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|