Tue 1 Aug 2006 16:22:38
คือผมอยากเพิ่มสคริป insert ภาพเข้าไปเก็บในดาต้าเบส แต่ต้องใส่ path ไม่ถูกอ่ะครับ คือพอใส่ path ไปแล้วมันไม่ insert เข้าไปใน ฟิลล์ของ table นะครับยังไงแนะนำด้วยครับ
<?
$DEFINE_SITE = true;
include "../../../includes/common.php";
include "../../../includes/template.php";
$template = new template();
$v = initial($ck);
//if ($mem[rank] > 0){
$step = ($_POST[vote] != "" ? 1 : 0);
if ($_POST[poll1] != "" && $step > 0){
$startpage = "finish.html";
$poll = $_POST[poll1];
query("INSERT INTO `post_picture` SET `mem_no` = '$mem[no]' , `mem_name` = '$mem[name]' , `poll` = '$poll' , `topic` = '$topic' , `comment` = '$comment' , `image` = '$image' , `time` = '$time'");
if (mysql_insert_id() > 0){
$template->assign_block_vars('fin',null);
} else {
$template->assign_block_vars('al',null);
}
} else {
$startpage = "main.html";
}
//} else {
//$startpage = "member.html";
//}
$template->set_filenames(array(
'body' => $startpage,
));
$page_title = "Online-Station Activity :: Dark Story";
$template->pparse('body');
?>
ไฟล์ชื่อ main.html
| หัวข้อบรรยาย | |
| คำบรรยาย | |
| ใส่ภาพประกอบ | |
http://www.domain.com/images/image.jpg
ถ้า script อยู่ที่
http://www.domain.com/upload.php
การอ้างแบบ relative จะได้
image/image.jpg
โดยการอ้างแบบ absolute ตอน upload ขึ้นอยู่กับการตั้งค่าของแต่ละ host ครับ
ส่วนการเก็บไว้ใน database อาจจะเก็บเพียงชื่อไฟล์แล้วตอนแสดงผลก็เอาชื่อไฟล์มาต่อหลัง path ที่เก็บรูปเช่น "image/".$row["path"] หรืออาจจะเก็บ path ทั้งหมดก็ได้ครับ
Wed 2 Aug 2006 10:14:08
มีปัญหาเช่นกันค่ะ คือต้องการให้ภาพลง database ด้วยค่ะ มันมีภาพอยู่เฉพาะในโฟลเดอร์ค่ะ ต้องใช้ insert ยังไงค่ะ ตัวเก็บภาพรองรับในdb ชื่อ pic0, pic1, pic2, pic3, pic4
<?
$host="localhost";
$username="root";
$pass_word="";
$db="mydatabase";
$tb="pic_upload";
mysql_connect( $host,$username,$pass_word) or die ("ติดต่อกับฐานข้อมูล Mysql ไม่ได้ ");
mysql_select_db($db) or die("เลือกฐานข้อมูลไม่ได้");
//รับค่าไฟล์ที่อัปโหลดมา
$fileuploads[0]=$_FILES["fileupload0"];
$fileuploads[1]=$_FILES["fileupload1"];
$fileuploads[2]=$_FILES["fileupload2"];
$fileuploads[3]=$_FILES["fileupload3"];
$fileuploads[4]=$_FILES["fileupload4"];
//ตัวแปร $action รับค่ามาจากการโพสต์
//ถ้ากำหนดสถานะเป็น upload จะเป็นการ upload
//ถ้าไม่กำหนดมาจะเป็นการรอรับไฟล์ที่จะอัปโหลด
if (isset($action) && $action=="upload") {
//อัปโหลดทีละไฟล์
for ($i=0; $i<count($fileuploads); $i++) {
echo $fileuploads[$i][name]."<br>"; //แสดงชื่อไฟล์
echo $fileuploads[$i][tmp_name]."<br>"; //แสดงโฟลเดอร์ที่นำไปเก็บไว้
echo $fileuploads[$i][type]."<br>"; //แสดงชนิดของรูปภาพ
echo $fileuploads[$i][size]."<br>"; //แสดงขนาดภาพ
$file_name=$fileuploads[$i][name];
//ทำการอัปโหลดที่ตรงนี้
//อัปโหลดไปยังไดเรคทอรี่ รากของเว็บไซต์ในชื่อเดิม
copy($fileuploads[$i][tmp_name], "picture/".$file_name);
}
}
$sql1= "INSERT INTO $tb (id_pic,pic0,pic1,pic2,pic3,pic4) VALUES ('','$file_name0','$file_name1','$file_name2','$file_name3','$file_name4')";
$dbquery1 = mysql_db_query($db, $sql1);
?>
<!--สำหรับการอัพโหลด-->
<form method="post" action="./upload.php?action=upload" enctype="multipart/form-data">
<input type="file" name="fileupload0" class="orenge" size="40"><br>
<input type="file" name="fileupload1" class="orenge" size="40"><br>
<input type="file" name="fileupload2" class="orenge" size="40"><br>
<input type="file" name="fileupload3" class="orenge" size="40"><br>
<input type="file" name="fileupload4" class="orenge" size="40"><br>
<input type="submit" name="Submit" value="อัปโหลด" class="orenge">
</form>
$sql1= "INSERT INTO $tb (id_pic,pic0,pic1,pic2,pic3,pic4) VALUES ('','$file_name0','$file_name1','$file_name2','$file_name3','$file_name4')";
ผมไม่เห็นการประกาศตัวแปร $file_name1 - $file_name4 เพื่อ insert ลงฐานข้อมูลครับ ซึ่งถ้าคุณทำการ loop แล้วคุณอาจจะทำการสร้างตัวแปร $file_name เป็น array ก็ได้ครับ เข่น
for ($i=0; $i<count($fileuploads); $i++) {
echo $fileuploads[$i][name]."<br>"; //แสดงชื่อไฟล์
echo $fileuploads[$i][tmp_name]."<br>"; //แสดงโฟลเดอร์ที่นำไปเก็บไว้
echo $fileuploads[$i][type]."<br>"; //แสดงชนิดของรูปภาพ
echo $fileuploads[$i][size]."<br>"; //แสดงขนาดภาพ
$file_name[]=$fileuploads[$i][name];
//ทำการอัปโหลดที่ตรงนี้
//อัปโหลดไปยังไดเรคทอรี่ รากของเว็บไซต์ในชื่อเดิม
copy($fileuploads[$i][tmp_name], "picture/".$fileuploads[$i][name]);
}
$sql1= "INSERT INTO $tb (id_pic,pic0,pic1,pic2,pic3,pic4) VALUES ('','".$file_name0."','$file_name[0]','".$file_name[1]."','".$file_name[2]."','".$file_name[3]."')";
Wed 2 Aug 2006 11:48:18
ทำดูแล้วค่ะ ไม่เข้า db อยู่ดีค่ะ ลงแต่ใน Folder เป็นเพราะอะไรค่ะ มือใหม่ไม่เข้าใจค่ะ รบกวนด้วยค่ะ
$file_name = ""; //ประกาศไว้นอก loop ด้วยครับ
for ($i=0; $i<count($fileuploads); $i++) {
echo $fileuploads[$i][name]."<br>"; //แสดงชื่อไฟล์
echo $fileuploads[$i][tmp_name]."<br>"; //แสดงโฟลเดอร์ที่นำไปเก็บไว้
echo $fileuploads[$i][type]."<br>"; //แสดงชนิดของรูปภาพ
echo $fileuploads[$i][size]."<br>"; //แสดงขนาดภาพ
$file_name[]=$fileuploads[$i][name];
//ทำการอัปโหลดที่ตรงนี้
//อัปโหลดไปยังไดเรคทอรี่ รากของเว็บไซต์ในชื่อเดิม
copy($fileuploads[$i][tmp_name], "picture/".$fileuploads[$i][name]);
}
$sql1= "INSERT INTO $tb (id_pic,pic0,pic1,pic2,pic3,pic4) VALUES ('','".$file_name0."','$file_name[0]','".$file_name[1]."','".$file_name[2]."','".$file_name[3]."')";

















