файл сообщения программы сокета к php - PullRequest
3 голосов
/ 24 ноября 2010

Вчера я задал вопрос о данных файла сокета на страницу php.

Ссылка здесь

Загрузка файла POST на страницу PHP

Когда я иду по пути, я меняю свой код.

char *str="POST /path/upload_file.php HTTP/1.0 \n Host: 00.00.00.00 \n   Content-Disposition: name=2.jpg;filename=2.jpg\r  " ;

write(sockfd, buf, filestat.st_size);
sprintf(send1,"%s%s\r\n",str,buf);
retval= send(sockfd,send1,sizeof(send1),0);

Когда я запускаю Программу, могу получить

Результат: 501 метод не реализован

Метод не реализован

в /index.html не поддерживается.

Неверный метод в запросе


Сервер Apache / 1.3.39 на локальном хосте, порт 80

Я думаю, это возможно: 1. apache не может что-то поддержать?
(мой apache не поддерживает ssl) 2. http протокол не подробности? 3. другое?

Большое спасибо.

1 Ответ

1 голос
/ 24 ноября 2010

Есть несколько проблем с вашим кодом.

Во-первых, заголовок Host является частью спецификации HTTP 1.1 и не применяется к HTTP 1.0.

Во-вторых, разделитель для разделения заголовков и тела: \r\n, а не \n.

В-третьих, вы используете Content-Disposition в запросе, так же, как его следует использовать в ответе.

Наконец, вам нужно отправить запрос как multipart/form-data. Ответ, с которым вы связались, был правильным. Запрос должен соответствовать этому формату.

Я написал подробный пример не так давно (хотя в PHP, но формат запроса остался прежним). Вы можете найти его здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...