Мне интересно, может ли кто-нибудь поделиться со мной примером multipart / form-data, который содержит:
- Некоторые параметры формы
- Несколько файлов
html
http
multipart
multipartform-data
user496949
источник
источник
17.13.4 Form content types
вы найдете то, что ищете.Ответы:
РЕДАКТИРОВАТЬ : я поддерживаю аналогичный, но более подробный ответ по адресу: https://stackoverflow.com/a/28380690/895245
Чтобы точно увидеть, что происходит, используйте
nc -l
либо сервер ECHO, либо пользовательский агент, например браузер или cURL.Сохраните форму в
.html
файл:Создайте файлы для загрузки:
Бегать:
Откройте HTML-код в своем браузере, выберите файлы, нажмите «Отправить» и проверьте терминал.
nc
печатает полученный запрос. Firefox отправил:В качестве альтернативы cURL должен отправлять тот же запрос POST, что и ваша форма в браузере:
Вы можете провести несколько тестов с помощью:
источник
boundary=---------------------------9051914041544843365972754266
на два дефиса короче фактических границ данных. Это действительно очень сложно увидеть, когда все дефисы соединены вместе.curl --trace-ascii <logfilename> .....
также удобен для просмотра отправленных и полученных данных.curl -trace <logfilename> ....
также будет отображаться двоичный файл. Удобно наблюдать за <LF> и <CR> <LF>.Большое спасибо ответу @Ciro Santilli! Я обнаружил, что его выбор границы довольно "неудачен", потому что все эти дефисы: на самом деле, как прокомментировал @Fake Name, когда вы используете свой внутренний запрос границы, он идет с еще двумя дефисами спереди:
Пример:
На этой странице w3.org я обнаружил, что можно инкапсулировать заголовок multipart / mixed в multipart / form-data, просто выбрав другую граничную строку внутри multipart / mixed и используя ее для инкапсуляции данных. В конце вы должны «закрыть» все границы, используемые в порядке FILO, чтобы закрыть запрос POST (например:
Взгляните на ссылку выше.
источник
Content-Disposition
с;
?