|
|
|
ทำการเขียน code upload รูปครับชื่อถูกบันทึกลง db แต่ว่ารูปภาพไม่ได้ถูกเก็บไว้ใน folder |
|
|
|
|
|
|
|
ลองศึกษาดูนะครับ
|
|
|
|
|
Date :
2011-05-26 13:35:26 |
By :
treza |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
บทความนี้เลยครับ
Code (PHP)
<?
if($_FILES["filUpload"]["name"] != "")
{
//*** Read file BINARY ***'
$fp = fopen($_FILES["filUpload"]["tmp_name"],"r");
$ReadBinary = fread($fp,filesize($_FILES["filUpload"]["tmp_name"]));
fclose($fp);
$FileData = addslashes($ReadBinary);
//*** Insert Record ***//
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase");
$strSQL = "INSERT INTO files ";
$strSQL .="(Name,FilesName) VALUES ('".$_POST["txtName"]."','".$FileData."')";
$objQuery = mysql_query($strSQL);
echo "Copy/Upload Complete<br>";
mysql_close($objConnect);
}
?>
Go to : PHP Upload MySQL BLOB Image (BLOB Binary Data in a MySQL Database)
|
|
|
|
|
Date :
2011-05-26 13:52:05 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณครับพี่ๆทุกท่าน ผมทำตามตัวอย่างที่พี่วินให้ผมมาแล้วปรากฎว่าถ้าเป็นรุปเดียวทั้งรุปทั้งชื่อมันถูกบันทึกหมดครับ
พอผมจะลองดัดแปลง code ดูโดยมีการเพิ่มการ upload เพิ่มขึ้นแล้วใช้ code ด้านล่างปรากฎว่าตอนบันทึกชื่อถูกบันทึกแต่รูปไม่ถูกบันทึกครับเลยงงว่ามันเกิดจากคำสั่งนี่เหรอยังไงช่วยดูอีกรอบน่ะครับพี่ๆๆทุกท่านขอบคุณครับ
Code (PHP)
if(copy($_FILES["fileupload"]["tmp_name"],$_FILES["fileupload2"]["tmp_name"],$_FILES["fileupload3"]["tmp_name"],"report/".$_FILES["fileupload"]["name"],"report/".$_FILES["fileupload2"]["name"],"report/".$_FILES["fileupload3"]["name"]))
{
}
|
|
|
|
|
Date :
2011-05-26 14:35:43 |
By :
chonburi f.c |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เหมือนคุณจะใช้คำสั่งเดียวเพื่อบันทึก หลาย ๆ ภาพ ลงหรือเปล่า ทำไมคุณไว้วนลูป เพื่อ แอดลงไปแทน
|
|
|
|
|
Date :
2011-05-26 15:05:46 |
By :
ไวยวิทย์ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ยังไงอะครับคุณ nico ถ้าทำแบบวนลูปมันจะลง db ให้ผมไหมเพราะผมเก็บชื่อไว้รวมกับ row นั้นเลย
ยังไงช่วยแนะนำทีน่ะครับ
|
|
|
|
|
Date :
2011-05-26 15:22:33 |
By :
chonburi f.c |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แล้วตารางออกแบบไว้ยังไงเหรอครับ
เช่น
1, ชื่อ, ภาพ 1, ภาพ 2, ภาพ 3
หรือแยกเก็บ ระหว่างตาราง ชื่อหลัก กับ ตาราง ภาพ
ถ้าเป็นแบบแรก น่าจะเก็บชื่อก่อน แล้วใช้ mysql_insert_id ดึง id ขึ้นมาเพื่อนำไปอัพเดทชื่อไฟล์ภาพลง
|
|
|
|
|
Date :
2011-05-26 16:41:42 |
By :
ไวยวิทย์ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าหลายๆภาพใช้ เป็น อาร์เรย์สองมิติดีกว่าครับ เวลายัดใส่เบสก็ให้ for loop งงไหมครับ ถ้างง ก็ให้ตอบว่างง จะได้ลงโค๊ดให้ ถ้าไม่งง ก็หามันในนี้แหละครับ มีตัวอย่างเยอะมาก
|
|
|
|
|
Date :
2011-05-26 17:19:47 |
By :
Dragons_first |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 8 เขียนโดย : Dragons_first เมื่อวันที่ 2011-05-26 17:19:47
รายละเอียดของการตอบ ::
บอกคุณอ้นคุงเลยน่ะครับว่า............งง คริคริ
ตอนนี้รูปมันบันทึกแล้วครับคุณอ้นคุง แต่ชื่อมันไม่ถูกบันทึกครับ นี้ code ผม
Code (PHP)
for($i = 0; $i < count( $_FILES["fileupload"]["tmp_name"] ); $i++) {
if(copy($_FILES["fileupload"]["tmp_name"][$i],"report/".$_FILES["fileupload"]["name"][$i]))
{
}
}
////--------------------เก็บรหัสสินค้าเป็นรหัส------------------************
$sql = "SELECT r_id FROM tb_report ORDER BY r_id DESC LIMIT 1";
$result = mysql_query($sql);
if(mysql_num_rows($result) > 0)
{
$row = mysql_fetch_array($result);
sscanf($row[0] ,"T54%d" , $id);
$id++;
$sql = "INSERT INTO tb_report VALUES(CONCAT('T54',RIGHT(CONCAT('00000' , $id) , 5)) ,'$company','$address','$t1','$t2','$t3','$t4','$t5','$t6','$t7','$t8','$t9' ,'$t10','$t11','$t12','$t13','$t14','$t15','$t16','$t17','$t18','$t19','$t20' ,'$t21','$t22','$t23','$t24','$t25','$t26','$t27','$t28','$t29','$t30','$t31', '$t32','$t33','$t34','$t35','$t36','$t37','$t38','$t39','$t40','$t41','$t42' ,'$t43','$t44','$t45','$t46','$t47','$t48','$t49','".$_FILES["fileUpload"]["name"][$i]."', '".$_FILES["fileUpload"]["name"][$i]."','".$_FILES["fileUpload"]["name"][$i]."')";
}
else
{
$sql= "INSERT INTO tb_report VALUES('T5400001' ,'$company','$address' ,'$t1','$t2','$t3','$t4','$t5','$t6','$t7','$t8','$t9','$t10','$t11' ,'$t12','$t13','$t14','$t15','$t16','$t17','$t18','$t19','$t20','$t21','$t22','$t23','$t24' ,'$t25','$t26','$t27','$t28','$t29','$t30','$t31','$t32','$t33','$t34','$t35','$t36','$t37' ,'$t38','$t39','$t40','$t41','$t42','$t43','$t44','$t45','$t46','$t47','$t48','$t49' ,'".$_FILES["fileUpload"]["name"][$i]."','".$_FILES["fileUpload"]["name"][$i]."','".$_FILES["fileUpload"]["name"][$i]."')";
}
|
ประวัติการแก้ไข 2011-05-26 17:48:11
|
|
|
|
Date :
2011-05-26 17:44:56 |
By :
chonburi f.c |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พยายามใช้ move_uploaded_file แทน copy กันหน่อยเถอะนะ คนสอนก็ชอบสอนผิดๆ คนใช้ก็พากันใช้ผิดๆ
|
|
|
|
|
Date :
2011-05-26 17:50:55 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แบบที่ถูกต้อง มันควรจะเป็น move_uploaded_file ครับ ตามมาตรฐานของ php และตัวอย่างที่สากลทั่วโลกเขาใช้กัน
|
|
|
|
|
Date :
2011-05-26 17:58:01 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช่ครับควรใช้ move_uploaded_file แต่ผมใช้ copy ซะเคยชิน เดียวสงสัยจะต้องได้เปลี่ยนล่ะ
|
|
|
|
|
Date :
2011-05-26 18:05:59 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมยังติดปัญหาอยู่เลยครับยังแก้ไขไม่ได้เลย
รูปลง folder แล้ว แต่ชื่อไม่ลง db
|
|
|
|
|
Date :
2011-05-26 18:13:37 |
By :
chonburi f.c |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โค๊ดล่าสุดเป็นไงครับ เหมือนคุณ vee บอกแหละ มันอยู่ข้ัางนอก แล้วมันจะเอา $i มาจากไหน
|
|
|
|
|
Date :
2011-05-26 19:08:18 |
By :
PlaKriM |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมไม่ค่อยเข้าใจเรื่องของ(for, foreach) ยังไงช่วยผมเขียนเป็นตัวอย่างให้ผมดูได้ไหมครับ ขอบคุณครับผม
|
|
|
|
|
Date :
2011-05-26 19:35:49 |
By :
chonburi f.c |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ยังไงครับคุณ vee แบบนี้รึป่าวครับ ตอนนี้ชื่อมันลงไปแล้วแต่มันเป็นชื่อซ้ำกัน 3 รุปอะครับ
Code (PHP)
for($i = 0; $i < count( $_FILES["fileupload"]["tmp_name"] ); $i++) {
if(copy($_FILES["fileupload"]["tmp_name"][$i],"report/".$_FILES["fileupload"]["name"][$i]))
{
////--------------------เก็บรหัสสินค้าเป็นรหัส------------------************
$sql = "SELECT r_id FROM tb_report ORDER BY r_id DESC LIMIT 1";
$result = mysql_query($sql);
if(mysql_num_rows($result) > 0)
{
$row = mysql_fetch_array($result);
sscanf($row[0] ,"T54%d" , $id);
$id++;
$sql = "INSERT INTO tb_report VALUES(CONCAT('T54',RIGHT(CONCAT('00000' , $id) , 5)) ,'$company','$address','$t1','$t2','$t3', '$t4','$t5','$t6','$t7','$t8','$t9','$t10','$t11','$t12','$t13','$t14','$t15', '$t16','$t17','$t18','$t19','$t20','$t21','$t22','$t23','$t24','$t25','$t26', '$t27','$t28','$t29','$t30','$t31','$t32','$t33','$t34','$t35','$t36','$t37' ,'$t38','$t39','$t40','$t41','$t42','$t43','$t44','$t45','$t46','$t47','$t48' ,'$t49','".$_FILES["fileupload"]["name"][$i]."','".$_FILES["fileupload"]["name"][$i]."' ,'".$_FILES["fileupload"]["name"][$i]."')";
mysql_query($sql);
$affected_rows = mysql_affected_rows();
if ($affected_rows > 0) {
echo "<script>alert(' การทำรายการเสร็จสมบูรณ์'); window.location ='main.php';</script>";
echo "<script>alert(' ไม่สามารถทำรายการได้ครับ ');history.back();</script>";
} else {
}
mysql_close();
}
}
|
|
|
|
|
Date :
2011-05-26 22:38:46 |
By :
chonburi f.c |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ยังไม่ได้เลยครับ
|
|
|
|
|
Date :
2011-05-28 00:51:01 |
By :
chonburi f.c |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ชื่อซ้ำกัน 3 รูปยังไงครับ 3record, 3field เพราะผมเห็นใช้ $_FILES["fileupload"]["name"][$i] ทั้ง 3 field
|
|
|
|
|
Date :
2011-05-28 06:38:14 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่ได้เข้านานนึกว่าจบไปแล้ว ดูโค๊ดประมาณนี้นะครับ
if($_GET["Action"]=="insert")
{
for($i=0;$i<count($_POST["name"]);$i++)
{
if($_POST["name"][$i] != "")
{
$path="../images";
if(trim($_FILES["fileUpload"]["tmp_name"][$i]) != ""){
$images = $_FILES["fileUpload"]["name"][$i];
$tmp = $_FILES["fileUpload"]["tmp_name"][$i];
$new_images = "Images_".$_FILES["fileUpload"]["name"][$i];
copy($tmp,$path."/".$new_images);
}
$sql="insert into tb_name (image) values('".$new_images."')";
$query=mysql_query($sql,$dbcon) or die (mysql_error().$sql);
}
}
}
|
ประวัติการแก้ไข 2011-05-28 09:57:37
|
|
|
|
Date :
2011-05-28 09:56:17 |
By :
Dragons_first |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แต่จากที่ดูฐานข้อมูลของคุณที่เก็บไว้ ผมว่า ถ้าคุณต้องการให้มีการอัพโหลดภาพ แค่ 3 ภาพในชื่อๆเดียวแล้วละก็ ถ้าไม่อยากสับสนมากควรเขียนแบบ Hard core เลยครับ เอาแบบตรงๆกันไปเลย
if($_GET["Action"]=="Add")
{
if(trim($_FILES["fileUpload1"]["tmp_name"]) != ""){
$path="../images";///พาร์ทรูป(โฟลเดอร์)
$images = $_FILES["fileUpload1"]["name"];
$tmp = $_FILES["fileUpload1"]["tmp_name"];
$new_images1 = "model1_".$_FILES["fileUpload1"]["name"];
copy($tmp,$path."/".$new_images1);
}
if(trim($_FILES["fileUpload2"]["tmp_name"]) != ""){
$path="../images";///พาร์ทรูป(โฟลเดอร์)
$images = $_FILES["fileUpload2"]["name"];
$tmp = $_FILES["fileUpload2"]["tmp_name"];
$new_images2 = "model2_".$_FILES["fileUpload2"]["name"];
copy($tmp,$path."/".$new_images2);
}
if(trim($_FILES["fileUpload3"]["tmp_name"]) != ""){
$path="../images";///พาร์ทรูป(โฟลเดอร์)
$images = $_FILES["fileUpload3"]["name"];
$tmp = $_FILES["fileUpload3"]["tmp_name"];
$new_images3 = "model3_".$_FILES["fileUpload3"]["name"];
copy($tmp,$path."/".$new_images3);
}
$sql="insert into tb_name (r_file1,r_file2,r_file3)";
$sql.=" values ('".$new_images1."','".$new_images2."','".$new_images3."')";
$query=mysql_query($sql,$dbcon) or die (mysql_error().$sql);
}
ส่วนฟอร์มก็ประมาณนี้
<input name="fileUpload1" type="file" size="40" class="style5" style="background-color:#E6E6E6;"/>
<input name="fileUpload2" type="file" size="40" class="style5" style="background-color:#E6E6E6;"/>
<input name="fileUpload3" type="file" size="40" class="style5" style="background-color:#E6E6E6;"/>
ผมคิดว่าน่าจะจบนะครับ
|
ประวัติการแก้ไข 2011-05-28 10:07:51 2011-05-28 10:09:07
|
|
|
|
Date :
2011-05-28 10:04:47 |
By :
Dragons_first |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณคุณอ้นคุงครับเดี๋ญวลองทำดู
|
|
|
|
|
Date :
2011-05-28 19:15:42 |
By :
chonburi f.c |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณทุกคอมเม้นครับผม
ตอนนี้ได้แล้วครับแบบว่าupload กี่รูปก็ได้ ให้ไฟล์ชื่อที่เก็บอยู่ใน record เดียวกันงมตั้งนาน thank
|
|
|
|
|
Date :
2011-05-31 22:18:15 |
By :
chonburi f.c |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รบกวนด้วยนะคะ
รูปสามารถแอดชื่อลง database ได้แล้ว แต่ไม่สามารถ copy รูปเก็บลง folder ได้ค่ะ ช่วยแก้หน่อยน่ะค่ะ
$fileUpload = $_POST["fileUpload"];
$uploads_dir = "../../uploads/";
$tmp_name = $_FILES["fileUpload"]["tmp_name"];
$name = $_FILES["fileUpload"]["name"];
if($fileUpload != '')
{
copy ( $fileUpload, $uploads_dir.$fileUpload );
//*** UPDATE Record ***//
$editSQL = "UPDATE picture";
$editSQL .=" SET photo = '".$fileUpload."' WHERE photo_id = '".$id."' ";
$result = mysql_query($editSQL);
echo "UPDATE picture SET photo = '".$fileUpload."' WHERE photo_id = '".$id."'";
}
|
|
|
|
|
Date :
2011-12-15 16:21:46 |
By :
กิ๊ก |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|