Chcę odpowiedzieć na to pytanie:
Czy to możliwe, aby przeczytać wieloczęściowe nagłówki pól przed ich zawartością?
Kiedy patrzę na multipart rfc , widzę ten przykład:
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--
Zwracam uwagę, że podobne nagłówki Content-Type
znajdują się między częściami ciała. Podsumowując, nie można wszystkich nagłówków przed wszystkimi ciałami.
Teraz na twoje pytanie:
Chcę przeanalizować formularz wieloczęściowy dwa razy: raz, aby pobrać przychodzące pola, a później przetworzyć przesyłanie pliku.
Zależy to, co rozumiesz przez „parsowanie”. Podczas odczytywania wiadomości HTTP występuje parsowanie, aby wiedzieć, kiedy się kończy. Koniec ma --
na końcu dodatkowe:
--boundary42--
Pomysły na parsowanie dwukrotnie:
- Kończę, należy skopiować całą odpowiedź z gniazda i parsować później.
- Możesz odczytać nagłówki pliku przed treścią pliku, ale nie wszystkie nagłówki wszystkich plików.
Czy to w ogóle możliwe?
Tak, są przypadki, w których jest to możliwe (gdy plik jest ostatnią przesłaną rzeczą). Nie wiem, czy jest to ogólnie możliwe, czego potrzebujesz, ponieważ nie wiem dokładnie, co chcesz zrobić.
Mam nadzieję, że to wyjaśnia. Jeśli nie jest to pełna odpowiedź lub nie podoba ci się to, powiedz nam dlaczego, ponieważ może to być cenna informacja zwrotna dla innych próbujących odpowiedzieć na pytanie.