Я хочу відповісти на це запитання:
Чи можливо читати заголовки полів багаторівневих матеріалів перед їх змістом?
Коли я дивлюся на багаточастотний 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--
Ідеї для розбору двічі:
- На завершення я повинен мати змогу скопіювати всю відповідь з сокета і зробити розбір пізніше.
- Ви можете читати заголовки файлу перед тілом файлу, але не всі заголовки всіх файлів.
Це навіть можливо?
Так, є випадки, коли це можливо (коли файл - це останнє, що ви завантажуєте). Я не знаю, чи взагалі можливо те, що вам потрібно, оскільки я не знаю, що саме ви хочете робити.
Я сподіваюся, що це прояснює речі. Якщо це не повна відповідь або вам це не подобається, скажіть нам, чому це може бути цінним відгуком для інших, хто намагається відповісти на питання.