หนึ่ง. การวิเคราะห์หลักการการใช้งานของการอัปโหลดไฟล์ตาม 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 สำหรับวิธีการประมวลผลเฉพาะโปรดดูบทนำที่เกี่ยวข้อง