ขอถามเกี่ยวกับการ save file จากเว็บครับ จะให้ไฟล์จริงชื่อหนึ่ง แต่เวลาเซฟบนเครื่องลูกเป็นอีกชื่อหนึ่ง
วิธีที่ว่านี้มีข้อจำกัดอะไรมั้ยครับ
หรือมีช่องโหว่ที่ต้องระวังมั้ยครับ
>ค่าที่รับมาคงเป็น get id
>เช็ค id integer
>หาค่าตำแหน่งไฟล์รูปจาก db อิง id
>แล้วค่อยเอามาให้ดาวน์โหลด
แบบนี้มันจะมีช่องโหว่อะไรอีกมั้ยครับ?
หรือกรณีไฟล์เอกสารที่อัปโหลดอยู่บน server มีขนาดใหญ่มาก เช่น 100เมก มันจะ php timeout เดี้ยงกลางคันมั้ยครับ?
ตอนแรกผมนึกว่ามันน่าจะมีวิธีดูภาพอยู่ คลิกขวา save as แล้วเปลี่ยนชื่อได้ แต่หาวิธีทำไม่ได้ - -"
Date :
2011-07-12 22:04:12
By :
mr.v
ปัญหาเดียวกันเลยครับ ผมก็กำลังหาวิธีทำอยู่
ตามที่ลิงค์ทีพี่วินให้มาก็ยังไม่ตรงอ่ะครับ
คือตอนอัพโหลดไฟล์ จะมีการ Rename ไฟล์ เป็นชื่ออื่น เช่นเป็น timestamp 32873492348.rar โดยชื่อเดิมเป็นชื่อ ทดสอบ.rar
แล้วก็ทำการ insert ชื่อไฟล์ใหม่ ชื่อไฟล์เดิม และ key ไว้สำหรับอ้างอิง ลง db
key อ้างอิงผมใช้เป็นฟังชั่นแรนด้อมเอา เช่น et7d645sdy3758lfi4o96j5l
พอตอนดาวน์โหลดผมก็ใช้ header เข้ามาช่วยในการซ่อน path ของไฟล์เพื่อไม่ให้รู้ที่อยู่จริง
ที่ a href ก็เรียก download.php?file=et7d645sdy3758lfi4o96j5l
หน้า download.php ก็รับค่า $_GET[file] เพื่อไปเป็นเงื่อนไข where ใน sql ที่จะ query ชื่อไฟล์เดิม
และชื่อไฟล์ที่ตั้งมาใหม่ ออกมา แล้วนำชื่อไฟล์ที่ตั้งใหม่ไปเป็นเงื่อนไขในการ readfile($sql[newname])
พอ user จะกด save มันก็เป็นชื่อไฟล์ที่ตั้งมาใหม่อ่ะครับ 32873492348.rar จะให้มันเป็นชื่อไฟล์เดิมอย่างไรอ่ะครับ
ต้องทำขั้นตอนไหนอย่างไร ช่วยชี้แนะด้วยครับ
ขอบคุณที่พยายามอ่านจนหมดนะครับ เหอๆ ยาวไปหน่อย ขอบคุณมากครับ
Date :
2011-07-12 22:23:32
By :
เด็กบางแสน
ความรู้ใหม่ อิอิ
ประวัติการแก้ไข 2011-07-13 07:01:00 2011-07-13 07:01:28 2011-07-13 07:02:17 2011-07-13 07:03:51
Date :
2011-07-13 06:57:47
By :
tomrambo
Load balance : Server 04