ฉันต้องการตอบคำถามนี้:
เป็นไปได้ไหมที่จะอ่านส่วนหัวของเขตข้อมูลแบบหลายส่วนหน้าเนื้อหาของพวกเขา
เมื่อฉันดูที่rfc หลายส่วนฉันเห็นตัวอย่างนี้:
From: Nathaniel Borenstein <nsb@bellcore.com>
To: Ned Freed <ned@innosoft.com>
Subject: Formatted text mail
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary=boundary42
--boundary42
Content-Type: text/plain; charset=us-ascii
...plain text version of message goes here....
--boundary42
Content-Type: text/richtext
.... richtext version of same message goes here ...
--boundary42
Content-Type: text/x-whatever
.... fanciest formatted version of same message goes here
...
--boundary42--
ฉันทราบว่าส่วนหัวเช่นContent-Type
นั้นตั้งอยู่ระหว่างส่วนต่าง ๆ ของร่างกาย ดังนั้นฉันสรุปได้ว่าคุณไม่สามารถหัวทั้งหมดก่อนที่ร่างกายทั้งหมด
ตอนนี้คำถามของคุณ:
ฉันต้องการแยกแบบฟอร์มหลายส่วนสองครั้ง: ครั้งหนึ่งเพื่อคว้าฟิลด์ที่เข้ามาและภายหลังเพื่อดำเนินการอัปโหลดไฟล์
มันขึ้นอยู่กับสิ่งที่คุณหมายถึงโดย "การแยกวิเคราะห์" มีการแยกวิเคราะห์บางส่วนที่เกี่ยวข้องเมื่ออ่านข้อความ HTTP เพื่อทราบเมื่อสิ้นสุด จุดสิ้นสุดมีการเพิ่ม--
ในตอนท้าย:
--boundary42--
แนวคิดสำหรับการแยกวิเคราะห์สองครั้ง:
- ฉันสรุปได้ว่าเราควรคัดลอกคำตอบทั้งหมดจากซ็อกเก็ตและทำการแยกวิเคราะห์ในภายหลัง
- คุณสามารถอ่านส่วนหัวของไฟล์ก่อนเนื้อความของไฟล์ แต่ไม่ใช่ส่วนหัวของไฟล์ทั้งหมด
เป็นไปได้ไหม
ใช่มีหลายกรณีที่เป็นไปได้ (เมื่อไฟล์เป็นสิ่งสุดท้ายที่คุณอัปโหลด) ฉันไม่ทราบว่าเป็นไปได้ในระดับสากลว่าคุณต้องการอะไรเพราะฉันไม่รู้ว่าคุณต้องการทำอะไร
ฉันหวังว่านี่จะอธิบายสิ่งต่าง ๆ หากนี่ไม่ใช่คำตอบที่สมบูรณ์หรือคุณไม่ชอบสิ่งนี้โปรดบอกเราว่าเพราะอะไรเพราะนี่อาจเป็นข้อเสนอแนะที่มีค่าสำหรับผู้อื่นที่พยายามตอบคำถาม