ฟังก์ชันการอัปโหลดไฟล์สามารถทำได้โดยใช้เทคโนโลยีการอัปโหลดแบบไม่มีส่วนประกอบหรือส่วนประกอบใน ASP จากนี้ เราสามารถใช้เทคโนโลยีการอัพโหลดแบบไม่มีส่วนประกอบของ ASP เพื่อสร้างเซิร์ฟเวอร์ FTP เสมือนบนเว็บไซต์ของเราเอง เช่นเดียวกับเซิร์ฟเวอร์ FTP จริง เราสามารถให้การจัดการไฟล์ระยะไกลสำหรับผู้ใช้หลายคน ในเวลาเดียวกัน ผู้ใช้แต่ละคนสามารถดำเนินการได้เฉพาะเอกสารของตนเองเท่านั้น .
เมื่ออัปโหลดไฟล์ ASP สามารถใช้ FSO หรือฐานข้อมูลเพื่อบันทึกข้อมูลไฟล์ได้ (บางเซิร์ฟเวอร์ไม่มีฟังก์ชัน FSO) ที่นี่ฉัน ใช้ฐานข้อมูล เพื่อบันทึกไฟล์ที่ผู้ใช้อัปโหลด ฉันจะไม่พูดถึงข้อดีของการใช้ฐานข้อมูล แต่มีมากมาย อีกเหตุผลหนึ่งคือ IIS จำกัดขนาดของไฟล์ที่อัปโหลด (อาจสูงสุด 200KB) เมื่อใช้วิธีการฐานข้อมูล คุณสามารถใช้เทคโนโลยีการทำงานต่อเพื่อทำลายขีดจำกัดนี้ และ คุณสามารถอัปโหลดไฟล์ขนาดใหญ่มาก ขนาดใหญ่มาก ใหญ่ไร้ขีดจำกัด ฯลฯ .
-
(555 พูดไร้สาระไปเยอะมาก เรามาพูดถึงหลักการและวิธีการนำไปปฏิบัติก่อน แล้วค่อยพูดถึงวิธีใช้ซอฟต์แวร์ในการนำไปปฏิบัติ)
*****************
● ขั้นตอนที่ 1: สร้างฐานข้อมูลบนเซิร์ฟเวอร์ (ยอมรับ ACCESS, SQL-SERVER, MYSQL ทั้งหมด) สิ่งที่ง่ายกว่าคือ ACCESS สร้างสองตารางในฐานข้อมูล:
อัพโหลดการจัดการผู้ใช้: ผู้ดูแลระบบ (ID, ชื่อ, รหัสผ่าน, ประเภท)
บันทึกข้อมูลไฟล์ที่อัพโหลด: ไฟล์ (ID, ParentID, FileName, FileLength, FileType, FileData, UpDate, UserID)
หาก FileLength=0 หมายความว่าเป็นโฟลเดอร์ และสร้างโฟลเดอร์รูทสำหรับผู้ใช้แต่ละคน
● ขั้นตอนที่ 2: สร้างหน้าเข้าสู่ระบบของผู้ใช้และใช้ SESSION เพื่อบันทึก ID ของผู้ใช้เพื่อจำกัดการดำเนินการกับไฟล์
เซสชั่น("ชื่อ") = รายการ("SName")
Session("UID") = list("ID")
● ขั้นตอนที่ 3: สร้างโฮมเพจของผู้ใช้ (แสดงไฟล์ที่อัพโหลดโดยผู้ใช้)
strSQL = "SELECT * FROM files WHERE ParentID=" & userRootID ' userRootId คือ ID ของโฟลเดอร์รูทของผู้ใช้
strSQL = strSQL & " และ UserID=" & SESSION("UID")
strSQL = strSQL & " เรียงตามชื่อไฟล์"
● ขั้นตอนที่ 4: อัปโหลดรายการหน้าไฟล์เพิ่มใหม่
รายการ ("ParentID") = userRootID
list("ชื่อไฟล์") = แบบฟอร์ม("ชื่อ")
list("FileLength") = แบบฟอร์ม("Length")
รายการ("ประเภทไฟล์") = แบบฟอร์ม("ประเภท")
list("FileData").AppendChunk MidB(sdata,Form("Start"),Form("Length"))
รายการ ("รหัสผู้ใช้") = เซสชัน ("UID")
รายการ ("อัปเดต") = ตอนนี้ ()
list.Update
● ขั้นตอนที่ 5: การดำเนินการจัดการไฟล์ (ใช้ ID ไฟล์เพื่อระบุไฟล์และจำกัดการดำเนินการของผู้ใช้)
ลบ: "ลบ * จากไฟล์ WHERE ID=" & iID & " AND UserID=" & Session("UID")
ดาวน์โหลด: "SELECT * FROM files WHERE ID=" & iID & " AND UserID=" & Session("UID")
Set conn = Server.CreateObject("ADODB.Connection")
conn.เปิด myConnStr
รายการชุด = conn.Execute("SELECT * FROM files WHERE ID=" & iID & " AND UserID=" & Session("UID"))
ถ้าไม่ใช่รายการ EOF แล้ว
ถ้า list("FileLength") > 0 แล้ว
Response.AddHeader "การจัดการเนื้อหา", "inline; filename=" & list("FileName")
Response.ContentType = รายการ ("ประเภทไฟล์")
Response.Binarywrite(list("FileData").GetChunk(list("FileLength")))
สิ้นสุดถ้า
สิ้นสุดหาก
● เพียงกรอกหน้าการดำเนินการเสริมอื่นๆ ให้เสร็จสิ้น แน่นอน เนื่องจากข้อจำกัดของเบราว์เซอร์ เทคโนโลยีประวัติการอัปโหลดไฟล์จึงไม่สามารถใช้งานได้โดยตรง และสามารถใช้งานได้ผ่านซอฟต์แวร์ไคลเอ็นต์เท่านั้น มีซอฟต์แวร์บนอินเทอร์เน็ตที่เรียกว่า "Upload File Manager" (รวมถึงซอร์สโค้ด ASP) ซึ่งใช้ฟังก์ชันข้างต้น ด้านล่างนี้เราจะพูดถึงวิธีใช้ซอฟต์แวร์นี้เพื่อสร้างเซิร์ฟเวอร์ FTP เสมือนของเราเอง
ที่อยู่ดาวน์โหลดซอฟต์แวร์: http://www.blue999.com/webfiles/uploadfiles_setup.exe
***************
(มันซับซ้อนมาก ทำให้มันง่าย มาดูวิธีใช้ “Upload File Manager” เพื่อใช้งานเซิร์ฟเวอร์ FTP เสมือนกัน)
***************
● 1. หลังจากดาวน์โหลดและติดตั้งซอฟต์แวร์แล้ว ให้อัปโหลดไฟล์ ASP ที่มาพร้อมกับซอฟต์แวร์ไปยังเว็บไซต์โดยใช้ซอฟต์แวร์ FTP (เช่น การอัปโหลดไปยังไฟล์เว็บ)
● 2. เรียกใช้ซอฟต์แวร์ไคลเอ็นต์และกำหนดเส้นทางเซิร์ฟเวอร์ไปยังโฟลเดอร์ที่อัปโหลด ชื่อผู้ใช้และรหัสผ่านของผู้ดูแลระบบขั้นสูงเป็นทั้งผู้ดูแลระบบ
● 3. ดำเนินการจัดการผู้ใช้ เพิ่ม ลบ แก้ไข เปิด/ปิดใช้งาน และจำกัดขนาดของไฟล์ที่ผู้ใช้อัปโหลด
● 4. ตกลง เซิร์ฟเวอร์ FTP เสมือนถูกสร้างขึ้นแล้ว และผู้ใช้ทุกคนจัดการไฟล์ของตนผ่านซอฟต์แวร์ (บนไคลเอ็นต์) ซอฟต์แวร์ทำงานคล้ายกับนักสำรวจ
● 5. ซอฟต์แวร์ยังมีซอร์สโค้ด ASP ของตัวอย่างการใช้งานบางส่วน คุณสามารถตรวจสอบได้ด้วยตัวเอง