แยกคำอธิบายโค้ดของข้อมูลรองที่อัปโหลดผ่านการอัปโหลดแบบฟอร์ม request.totalbytes เป็นไฟล์ไบนารี
คัดลอกรหัสรหัสดังต่อไปนี้:
<ประเภทอินพุต = "ไฟล์">
formsize=request.totalbytes
formdata=request.binaryread(ขนาดฟอร์ม)
bncrlf=chrB(13) & chrB(10)
ตัวแบ่ง=leftB(formdata,clng(instrb(formdata,bncrlf))-1)
datastart=instrb(formdata,bncrlf & bncrlf)+4
dataend=instrb(datastart+1,formdata,divider)-datastart
mydata=midb(formdata,datastart,dataend)
formsize=request.totalbytes
รับจำนวนไบต์สูงสุดที่อัปโหลด
-
formdata=request.binaryread(ขนาดฟอร์ม)
รับข้อมูลแบบฟอร์มจากสตรีมไบนารี
-
bncrlf=chrB(13) & chrB(10)
ตั้งค่าตัวแปรแคร่ของ crlf และโค้ดป้อนบรรทัด
-
ตัวแบ่ง=leftB(formdata,clng(instrb(formdata,bncrlf))-1)
รับข้อมูลไบต์ทางด้านซ้ายของ crlf แรก
instrb(formdata,bncrlf)-1 เครื่องตรวจสอบว่าค่าบิตของไบต์ไบนารี crlf เป็นลบหนึ่ง ซึ่งเป็นข้อมูลไบนารีก่อนข้อมูลแฟล็ก ควรสังเกตว่า instrb ส่งคืน clng ดังนั้น clng จะถูกเพิ่มที่นี่ ซ้ำซ้อน
-
datastart=instrb(formdata,bncrlf & bncrlf)+4
รับข้อมูลรูปภาพและลบตำแหน่งเริ่มต้นของข้อมูลส่วนหัวที่เพิ่มโดยแบบฟอร์มฟอร์ม ซึ่งเป็นตำแหน่งเริ่มต้นไบต์ของข้อมูลไฟล์จริงหลังจากส่ง type=file ของคุณในแบบฟอร์มแล้ว
ตำแหน่งของสอง crlfs ติดต่อกัน + 4 (นั่นคือ ความยาวของสอง crlfg)
-
dataend=instrb(datastart+1,formdata,divider)-datastart
ตำแหน่งข้อมูล + 1 ที่ได้รับจากด้านบนจะใช้เป็นค่าการคำนวณอ้างอิงเพื่อตรวจสอบจุดสิ้นสุดของข้อมูล ตำแหน่งของข้อมูลส่วนหัวตัวคั่นแบบฟอร์มไบนารีแรกจะถูกส่งกลับที่ตำแหน่งเริ่มต้นจาก datastart + 1 จากนั้นตำแหน่งสัมพัทธ์ ของดาต้าสตาร์จะถูกลบออก
-
mydata=midb(formdata,datastart,dataend)
midb() ใช้รูปแบบ star end bit ของข้อมูลไฟล์ที่อัพโหลดซึ่งได้มาจากการบิดและเปลี่ยนหลายครั้ง
ตกลง --------------> ตอนนี้แยกข้อมูลรองที่อัปโหลดอย่างหมดจด
บันทึก:
(1) ฟังก์ชัน VB ของ *B series ทั้งหมดจะถูกประมวลผลเป็นไบต์
(2) หลังจากส่ง .type=file และข้อมูลแบบฟอร์มประเภทแบบฟอร์มที่เกี่ยวข้องแล้ว ข้อมูลส่วนหัวที่เกี่ยวข้องจะถูกแนบไปกับแต่ละฟิลด์ไฟล์
ดังนั้นต้องใช้อัลกอริธึมข้างต้นเพื่อค้นหาข้อมูลไฟล์จริงอย่างชัดเจน
(3) ในเวลาเดียวกัน ข้อมูลส่วนหัวยังมีข้อมูลของชื่อไฟล์เริ่มต้นที่อัปโหลด เช่น c:/aaa/aaa.jpg ข้อมูล formdata สามารถประมวลผลในลักษณะเดียวกันเพื่อแยกชื่อไฟล์เบื้องต้น ของข้อมูลโดเมนไฟล์
(4) อัลกอริธึมเหล่านี้ได้มาจากข้อมูลรูปแบบที่จัดทำโดยข้อกำหนด http "form" ดังนั้นอัลกอริธึมการประมวลผลของ บริษัท ใด ๆ จึงคล้ายกัน!