เมื่อเราทำงานในโครงการเว็บเรามักจะต้องใช้ฟังก์ชั่นของการอัปโหลดไฟล์ แต่การอัปโหลดไฟล์ประเภทต่าง ๆ ในสภาพแวดล้อมแอปพลิเคชันเบราว์เซอร์/เซิร์ฟเวอร์มีผู้ใช้ที่มีปัญหาอยู่เสมอ ดังนั้นวิธีการของ ASP ในการอัปโหลดไฟล์คืออะไร?
หนึ่ง. การวิเคราะห์หลักการการใช้งานของการอัปโหลดไฟล์ตาม ASP
หลักการพื้นฐานคือ: ใช้วิธี BinaryRead ของวัตถุ ADO Stream เพื่ออ่านข้อมูลทั้งหมดในรูปแบบสกัดกั้นข้อมูลไฟล์ที่ต้องการและบันทึกไว้ในไฟล์ไบนารี
นี่คือตัวอย่างของหน้าอัปโหลด (upload.htm):
<html >< ร่างกาย >< ชื่อฟอร์ม = "อัปโหลด" เมธอด = "โพสต์" enctype = "multipart/form-data" action = "upload.asp"> <ประเภทอินพุต = "file" name = "filename"> <ประเภทอินพุต = "ส่ง" value = "upload"> </td>
วัตถุไฟล์ถูกใช้ในโปรแกรมเพื่อให้ข้อมูลต้นฉบับที่อ่านโดยใช้วิธี BinaryRead ใน upload.asp ไม่เพียง แต่ข้อมูลของไฟล์ที่เลือกเท่านั้น แต่ยังมีคำอธิบายของพา ธ ประเภทชื่อโดเมนแบบฟอร์มของหน้าส่งและข้อมูลอื่น ๆ ที่เกี่ยวข้องในฮาร์ดดิสก์ของผู้ใช้ ด้วยวิธีนี้เราจำเป็นต้องแยกเนื้อหาเฉพาะของไฟล์จากไฟล์ จากการวิเคราะห์บรรทัดการหารระหว่างข้อมูลส่วนหัวของข้อมูลและข้อมูลคือการแบ่งสายการขนส่งกลับสองคู่และยังมีการแยกข้อมูลในตอนท้าย เราสามารถใช้วิธีการที่คล้ายกันเพื่อรับข้อมูลไฟล์
DIM FormData.FormSize, DataStart, CLSTR, DivStrformSize = request.totalByTesFormData = request.binaryRead (FormSize) CLSTR = Chrb (13) & Chrb (10) DataStart = InstrB DIVSTR = ซ้าย (formData, instrb (formData, clstr) -1) datasize = instrb (dataStart+1, formData, divstr) -datastart-2formdata = midb (formdata, dataStart, datasize) formdata เป็นเนื้อหาของไฟล์
การรักษาที่สอดคล้องกันสามารถทำได้ตามต้องการตรงกลาง งานสุดท้ายคือการบันทึกไฟล์ มีสองวิธีในการบันทึก: หนึ่งคือการใช้วิธีการใช้งานไฟล์ไบนารีในโปรแกรมเช่น VB หรือ VC เพิ่มไลบรารีประเภทที่เหมาะสมลงในโครงการและในที่สุดก็รวบรวมเป็นไฟล์ DLL และลงทะเบียนไฟล์ DLL เมื่อใช้งาน โปรแกรมจัดเก็บไฟล์มีดังนี้:
ฟังก์ชั่นสาธารณะ savefile (ชื่อพา ธ เป็นสตริง) เป็นสตริง dim objcontext เป็น objectContext dim objrequest เป็นชุดคำขอ objcontext = getObjectContext () ตั้งค่า objrequest = objcontext ("คำขอ") 'ส่วนหนึ่งของการดำเนินการที่เกี่ยวข้อง REDIM FORMDATA (DATASIZE-1) FORMDATA = OBJREQUEST.BinaryRead (DATASIZE) CLSTR = CHRB (13) & ChRB (10) DataStart = InstrB (FormData, CLSTR & CLSTR) +4 DIVSTR = ซ้าย formData = MIDB (formData, dataStart, datasize) 'สร้างไฟล์ไบนารีและเขียน formData เพื่อเปิดชื่อพา ธ สำหรับไบนารีเป็น 1 ใส่ #1 ,, formData ปิด #1 saveFile = "ตกลง!" ฟังก์ชันสิ้นสุดวิธีที่สองคือการใช้วิธีการใช้งานไฟล์ไบนารีที่มีให้ในสตรีม ADO เพื่อให้เสร็จสมบูรณ์ คำสั่งที่จะบันทึกไฟล์คือ: Streamobj.savetofile (ชื่อไฟล์, 2) ในการดำเนินการประเภทนี้เราสามารถจัดเก็บการดำเนินการที่เกี่ยวข้องในไฟล์คลาส เมื่อสมัครเพียงรวมไฟล์คลาสในโปรแกรม ASP สำหรับวิธีการประมวลผลเฉพาะโปรดดูบทนำที่เกี่ยวข้อง
สอง. ตัวอย่างวิธีการใช้งานการอัปโหลดไฟล์
ในการใช้งานการอัปโหลดไฟล์คุณสามารถใช้ส่วนประกอบหรือวิธีการที่ปราศจากส่วนประกอบ สำหรับคลาสส่วนประกอบเช่น Microsoft Posting Acceptor (MPA สั้น ๆ ) มันเป็นส่วนประกอบเซิร์ฟเวอร์ฟรีที่เปิดตัวโดย Microsoft การติดตั้งส่วนประกอบดังกล่าวก็สะดวกกว่า สำหรับ MPA ของ Microsoft เพียงเรียกใช้ไฟล์การติดตั้ง สำหรับแบบฟอร์มองค์ประกอบ DLL ทั่วไปเราต้องลงทะเบียน ตัวอย่างเช่นในการใช้ aspcnup.dll เพียงดำเนินการ regsvr32 [path/] aspcnup.dll บน Window 2000 และระบบแจ้งให้การลงทะเบียนสำเร็จคุณสามารถใช้องค์ประกอบนี้ได้ สำหรับคลาสที่ไม่มีส่วนประกอบเมื่อใช้เพียงแค่รวมข้อความต่อไปนี้ในตัวจัดการ:
<!-#รวม file = "upload.inc"-> set upload = new upload_5xsoft 'สร้างวัตถุอัปโหลด
สำหรับคุณสมบัติและวิธีการใช้งานโปรดดูคู่มือผู้ใช้ของส่วนประกอบนี้
ต่อไปนี้เป็นซอร์สโค้ด (upload.asp) สำหรับการอัปโหลดไฟล์บางประเภทโดยใช้ส่วนประกอบ aspcnup.dll เป็นตัวอย่าง:
<% @ language = "vbscript" set fileup = server.createObject ("aspcn.upload") fileup.maxsize = 200000 fileup.path = "d:/upfile" fileup.upload สำหรับ i = 0 ถึง fileup.count fieldName = fileup.fieldName ileup.fileType (fieldName) = "rar" จากนั้น fileup.save fieldName สิ้นสุดถ้า set fileUp ถัดไป = ไม่มีอะไร%>โมเดลแอปพลิเคชันเบราว์เซอร์/เซิร์ฟเวอร์ยังคงพัฒนาอย่างรวดเร็ว ใน ASP.NET ที่เปิดตัวใหม่ของ Microsoft ฟังก์ชั่นการอัปโหลดไฟล์ได้ถูกสร้างขึ้นในตัวทำให้ง่ายและสะดวกในการใช้งาน ในฐานะที่เป็นเทคโนโลยีใหม่ล่าสุด ASP.NET ไม่ได้เป็นเพียงการอัพเกรด ASP ที่เรียบง่าย มันเป็นกรอบใหม่ล่าสุดสำหรับการพัฒนาเว็บซึ่งมีคุณสมบัติใหม่มากมาย ASP.NET ให้รหัสโครงสร้างและโครงสร้างที่ชัดเจนยิ่งขึ้นและเราจะสามารถนำกลับมาใช้ใหม่และแบ่งปันได้ง่ายขึ้นดังนั้นจึงพัฒนาโปรแกรมที่ใช้งานได้จริงมากขึ้น
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่าเนื้อหาของบทความนี้จะช่วยในการศึกษาหรือทำงานของทุกคน ฉันหวังว่าจะสนับสนุนช่องเทคโนโลยีใหม่ที่ผิด!