สอบถามเรื่องการทำหน้า Download สำหรับเว็บฝากไฟล์ครับ
ถ้าในความจริง เราจะไปเอา Auto ล่าสุดมาหาค่ามันก็ยาก เผื่อมีคนอัพโหลดทับซ้อนในเวลาเดียวกัน ตายแน่ๆถ้าไปพึ่งการหา auto ล่าสุด . .. เปลี่ยนๆวิธีเป็นหาจากชื่อไฟล์นี่ง่ายกว่าในนี้ก็มีแล้วด้วย :) $xxx=$_FILES["fileUpload"]["name"]. .. แต่ชื่อไฟล์มีโอกาศจะซ้ำกันเราเพิ่มความน่าจะซ้ำให้น้อยลงไป โดยติดนาที และวินาทีไปกับหน้าชื่อไฟล์(เปลีย่นชื่อไฟล์ก่อนเก็บลง DB และ ก่อนmove uploadนั้นเอง) . . . พอเราคิวรี่เสร็จบรรทัดที่ 34 เราก็สั่งโค้ดเมตารีเฟรชพร้อมพ่วงตัวแปร$xxx ไปยัง URL ที่เราทำไว้เพื่อเป็นหน้าแสดงผล จากนั้นเราก็เอาตัวแปร $xxx ทำการ WHERE หามัน .. . . ว่าอยู่ไหน แสดงผลลัพท์ออกมา
ปล. โอกาศซ้ำไช่ว่าจะไม่มี แต่น้อยมากที่คนจะใช้ชื่อไฟล์เดียวกัน อัพโหลด วัน เวลา นาที วินาที เดียวกัน
ปล. 2 ค่อยๆอ่านอย่างงนะ เพราะผมเองก็งง 5 5 5
Date :
2013-10-02 23:32:40
By :
meannerss
ตอนนี้เปลี่ยนชื่อไฟล์ได้แล้วครับ แต่ติดตรงที่ meta refresh ครับจะส่งค่า $xxx ที่ว่าไปยังไงอ่ะครับ
Date :
2013-10-03 00:27:49
By :
Addyklub
Code (PHP)
echo "<meta http-equiv='refresh' content='0;URL=mypage.php?img=$img'>";
$img คือ $_FILES["fileUpload"]["name"] ที่เราแปลงชื่อพ่วงเวลาแล้ว
*** จุดสังเกตเวลาโหลดเสร็จ ให้ดู URL ข้างบนลิ้งถ้าลิ้งเราพ่วงชื่อรูปภาพไปด้วยแสดงว่าสำเร็จ
แล้วก็เอาไปรับ $_GET นำไปดำเนินการคิวรี่กันต่อไปครับ
Date :
2013-10-03 00:32:03
By :
meannerss
ปัญหามาอยู่ที่หน้ารับแล้วครับตอนนี้
ส่งไฟล์จาก index.php แบบนี้ครับ
Code (PHP) index.php
echo "<meta http-equiv='refresh' content='0;url=showfile.php?name=".$newname."'";
ผมรับไฟล์มาแบบนี้ครับ
Code (PHP) showfile.php
<?
$file=$_GET["name"];
include ("include/connect.php");
$sql="select Filesname form files where Filesname='$file'";
$sqlQuery=mysql_query($sql) or die ("Can not query");
$num=mysql_num_rows($sqlQuery);
if(num==0){
echo ("ไม่พบไฟล์ดังกล่าว");
}else{
$data=mysql_fetch_array($sqlQuery);
$name=$data["Filesname"];
$dir="file/";
echo ("<a href='".$dir.$name."'>Download</a>");
}
?>
ลองอัพไฟล์แล้ว Can not query ซะงั้น
ประวัติการแก้ไข 2013-10-03 00:49:08 2013-10-03 00:51:21
Date :
2013-10-03 00:48:23
By :
Addyklub
1. $get รับค่าได้แล้วแน่นะครับ
2. ในไฟล์ที่สร้างใหม่นี่ ใส่ส่วน connect ดาต้าเบสรึยัง พวก incude config.php อะไรประมาณนี้
Date :
2013-10-03 00:53:26
By :
meannerss
ก่อนหน้านี้ผม echo ตัวแปรที่ GET ดูแล้วครับว่ารับได้ ในส่วนคอนเนกดาต้าเบสผมใส่แล้วครับที่บรรทัด 03 ครับ
Date :
2013-10-03 01:05:31
By :
Addyklub
แสดงว่า
$sql="select Filesname form files where Filesname='$file'";
1. ตรงนี้มีอะไรผิดแน่นอน . .. . ตรวจสอบตัวเล็กใหญ่ของชื่อตาราง และชื่อฟิล . .. .
2. ลองเปลี่ยนชื่อตัวแปรจาก $file เป็นชื่ออื่นดูครับ $file มันสงวนหรือเปล่านะไม่แน่ใจ มันเป็นคำสากลเกินไป $xxx=$_GET["name"]; /////******* where Filesname='$xxx'
Date :
2013-10-03 01:30:40
By :
meannerss
Edit : มันไม่มีสาระพอจะมาเป็นตารางครับจำนวนครั้งที่ดาวโหลด . . . .แนะนำ ให้ทำตารางประกาศข่าวสาร แล้วคอมเม้นส์ได้ เพราะมันง่ายและคลาสสิคที่สุดแล้วครับ และเป็นเว็บ 2.0 ได้ด้วย ติดต่อกับผู้ใช้งาน :)) ถ้าทำจะได้มาอีก 2 ตารางเลย เอาแบบง่ายๆ ให้ admin โพสหัวข้อได้คนเดียว user แสดงความคิดเห็นได้เท่านั้น . . .
1. ตารางประกาศ (ID_POST(pk auto_increment),TOPIC,TOPIC_DETAIL,DATETIME)
2. ตารางคอมเม้น (ID_COMMENT(pk auto_increment),ID_POST(Ref.tbl1),COMMENT_DETAIL,COMMENT_BY,DATETIME )
ประวัติการแก้ไข 2013-10-03 02:05:28
Date :
2013-10-03 01:56:22
By :
meannerss
Load balance : Server 04