@strager1

Как загрузить файл на сервер через POST запрос?

Стоит задача передать файл с компьютера (windows) на контроллер (ubuntu) через веб-морду. То есть пользователь должен выбрать файл через html форму и этот файл загружается в определенную директорию контроллера. Проблема в том, что в POST запросе получаемом от страницы, нет никакой ссылки на файл. Сервер - lighttpd, язык программирования c++.
Html страница:
<h2>Загрузка ПО</h2>
<form enctype="multipart/form-data" action="cgi?downloadpost" method="post">
<fieldset><label> Укажите путь к загружаемому файлу <input name="g1" type="file"></label></fieldset><p>&nbsp;</p><p align=right><input type="submit" name="button" value="Загрузить" />
</p></form>

В cgi?downloadpost пока ничего нет, однако это не должно мешать отправлять нормальный POST запрос, по итогу же он выглядит вот так:
POST запрос
Request URL: 192.168.0.200/cgi-bin/cgi?downloadpost
Request Method: POST
Status Code: 500 Internal Server Error
Remote Address: 192.168.0.200:80
Referrer Policy: strict-origin-when-cross-origin
Content-Length: 369
Content-Type: text/html
Date: Mon, 07 Sep 2020 11:03:48 GMT
Server: lighttpd/1.4.45
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7
Cache-Control: max-age=0
Connection: keep-alive
Content-Length: 294
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryMOqMNc77OxgqUi3l
Host: 192.168.0.200
Origin: 192.168.0.200
Referer: 192.168.0.200/cgi-bin/cgi?download
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36

Насколько я понял, здесь где-то должно фигурировать имя загружаемого файла file.txt, но его нигде нет.
  • Вопрос задан
  • 439 просмотров
Решения вопроса 1
@Hanneman
Вот так выглядит POST-запрос в расшифровке (в форме посылается файл test.txt с текстом test content внутри) .
5f55e383690b7109711376.jpeg
У вас в примерах ответ от сервера. а не запрос.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы